QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#549501#9221. Missing Boundariesknightofshadow#WA 76ms11400kbC++141.7kb2024-09-06 16:32:152024-09-06 16:32:15

Judging History

你现在查看的是最新测评结果

  • [2024-09-06 16:32:15]
  • 评测
  • 测评结果:WA
  • 用时:76ms
  • 内存:11400kb
  • [2024-09-06 16:32:15]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
using ll=long long;

void solve(){
    int n,maxn;
    cin>>n>>maxn;

    vector<pair<int,int>> no;
    vector<int> L,R; 
    set<int> a;

    int cnt=0,k=n;

    for(int i=1;i<=n;i++){
        int l,r;
        cin>>l>>r;
        if(l!=-1&&r!=-1){
            no.push_back({l,r});
            k--;
        }
        else if(l!=-1){
            a.insert(l);
        }
        else if(r!=-1){
            a.insert(r);
        }else cnt++,k--;
    }

    if(a.size()!=k){
        cout<<"NIE\n";
        return;
    }

    sort(no.begin(),no.end());

    int len=no.size();
    for(int i=1;i<len;i++){
        if(no[i].first<=no[i-1].second){
            cout<<"NIE\n";
            return;
        }
    }

    int l=1,r;
    for(int i=0;i<len;i++){
        r=no[i].first-1;
        if(l<=r){
            L.push_back(l);
            R.push_back(r);
        }
        l=no[i].second+1;
    }
    r=maxn;
    if(l<=r){
        L.push_back(l);
        R.push_back(r);
    }

    int m=L.size();
    vector<int> b(m);

    for(auto x:a){
        auto it=lower_bound(L.begin(),L.end(),x);
        if(it==L.end()){
            cout<<"NIE\n";
            return;
        }
        int p=it-L.begin();
        if(x>R[p]){
            cout<<"NIE\n";
            return;
        }
        b[p]++;
    }

    int sum=0,num=0;
    for(int i=0;i<m;i++){
        sum+=R[i]-L[i]+1-b[i];
        if(!b[i]) num++;
    }

    if(num<=cnt&&cnt<=sum){
        cout<<"TAK\n";
    }else cout<<"NIE\n";
}

int main(){
    ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);

    int t=1;
    cin>>t;
    while(t--) solve();

    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3488kb

input:

3
4 51
1 -1
11 50
-1 -1
-1 10
3 2
-1 -1
-1 -1
-1 -1
2 3
1 2
2 3

output:

TAK
NIE
NIE

result:

ok 3 lines

Test #2:

score: -100
Wrong Answer
time: 76ms
memory: 11400kb

input:

1
200000 1000000000
490669427 -1
224278942 224287156
821104480 -1
861696576 861702036
807438935 807440055
574078002 574083717
465630141 -1
195378188 -1
-1 13500961
-1 977536179
92893115 -1
-1 661145418
-1 215804863
-1 685338515
544348999 -1
465532902 -1
130346949 -1
-1 526666304
635604584 635605404
...

output:

NIE

result:

wrong answer 1st lines differ - expected: 'TAK', found: 'NIE'