sort排序!优化很重要!!!不必要判断的时候,坚决不要判断!if()语句真的很浪费时间!
#include<iostream> #include<cstdio> #include<string> #include<algorithm> using namespace std; class node { public: int date; int num; }l; node p[100005]; bool cmp(node &a,node &b) { if(a.date <=b.date )return true; return false; } int main() { int n,t,i; cin>>n>>t; for(i=0;i<n;i++) { scanf("%d",&p[i].date); p[i].num=i+1; } sort(p,p+n,cmp); int l,r,k; while(t--) { scanf("%d%d%d",&l,&r,&k); int num=0; for(i=0;i<n;i++) if(l<=p[i].num &&p[i].num <=r) { num++; if(num==k) { printf("%d\n",p[i].date ); break; } } } return 0; }