View Code of Problem 6

//----fishman@Willian
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<queue>
#include<stack>
#include<set>
#include<map>

using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int maxn=100005;

struct Soil{
    int bg,ed;
};
Soil a[maxn];
bool cmp(Soil a,Soil b){
   return a.bg<b.bg;
}
int main()
{
    int T;
    cin>>T;
    while(T--){
        int n;
        cin>>n;
        for(int i=0;i<n;++i)cin>>a[i].bg>>a[i].ed;
        sort(a,a+n,cmp);
        int flag=1,flag1;
        for(int i=a[0].ed;i<=a[1].bg;++i){
            flag1=1;
            int pos=i+i;
            for(int j=1;j<n;++j){
                if(!((j!=n-1)&&pos<=a[j+1].bg&&pos>=a[j].ed||(j==n-1&&pos>=a[j].ed))){
                    flag1=0;break;
                }
            }
            if(flag1==1)break;
        }
        flag=flag1;
        cout<<(flag==1?"YES":"NO")<<endl;
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 6