蓝桥杯algo1区间k大数查询
发布时间:2020-12-14 03:17:47 所属栏目:大数据 来源:网络整理
导读:? ?数据量比较大,如果每次划一个区间就排一次序的话,时间一定会消耗很多,所以想一种办法只排一次序,所以把数存到另一个数组中,这个数组从大到小排一次序,原来的数组保持不变,剩下就只需要从大到小在区间中找对应的了。 #includecstdio#includecstring
? ?数据量比较大,如果每次划一个区间就排一次序的话,时间一定会消耗很多,所以想一种办法只排一次序,所以把数存到另一个数组中,这个数组从大到小排一次序,原来的数组保持不变,剩下就只需要从大到小在区间中找对应的了。 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; bool cmp(int a,int b) { return a>b; } int main() { int i,j,k,n,m; int a[1000],b[1000]; while(~scanf("%d",&n)) { for(i=0; i<n; i++) { scanf("%d",&a[i]); b[i]=a[i]; } sort(b,b+n,cmp); scanf("%d",&m); int L,R,K; while(m--) { scanf("%d%d%d",&L,&R,&K); j=0; int I; while(K>0) { for(i=L-1;i<R;i++) { if(a[i]==b[j]) { I=a[i]; K--; } } endd: j++; if(j>=n) break; if(b[j]==b[j-1]) goto endd; } printf("%dn",I); } } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |