题目链接:http://codeforces.com/problemset/problem/811/B
前言:今天三场比赛,我已经打的不行了,最后的codeforce咬咬牙打了吧,这道题很明显的有关排序的然后判断排完后是否匹配,我也懒得想了,直接快排交一发,结果过了,很是高兴,过一会被hack了,TLE,我去,心态爆炸,感觉这个世界没有爱了啊。脑子实在转不动了,今天一早看了看别人的代码恍然大悟, 确定位置不一定非得把所有的序列都排一遍啊!!
思路:找到比他小的数,判断比他小的数的个数,然后与X进行比较(不要无脑用快排)
代码:
#include <iostream>
using namespace std;
int a[10010];
int main()
{
int n,m;cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i];
while(m--){
int l,r,x;cin>>l>>r>>x;
int tmp=0;
for(int i=l;i<=r;i++)
if(a[x]>a[i])
tmp++;
if(tmp^(x-l)) cout<<"No"<<endl;
else cout<<"Yes"<<endl;
}
}