UVa 11926 - Multitasking Solution

 #include <bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(0);
    int n,m;
    while(cin>>n>>m){
        if(m==0&&n==0)return 0;
        bitset<1000001> vis;
        int flag=0;
        for(int i=0;i<n;i++){
            int u,v;
            cin>>u>>v;
            if(!flag)
                for(int j=u;j<v;j++){
                    if(vis[j]){flag=1;break;}
                    else vis[j]=1;
                }
        }
        for(int i=0;i<m;i++){
            int u,v,r;
            cin>>u>>v>>r;
            int flag2=1;
            if(!flag)
                for(int mult=0;flag2&&!flag;mult++){
                    for(int j=u;j<v;j++){
                        int i1=mult*r+j;
                        if(i1>1000000){flag2=0;break;}
                        else if(vis[i1]){flag=1;break;}
                        else vis[i1]=1;
                    }
                }
        }
        if(flag)cout<<"CONFLICT"<<endl;
        else cout<<"NO CONFLICT"<<endl;
    }
    return 0;
}

Comments