Submission #953727

#TimeUsernameProblemLanguageResultExecution timeMemory
953727vjudge1Passport (JOI23_passport)C++17
6 / 100
119 ms14956 KiB
#include<bits/stdc++.h> using namespace std; const int maxn=200000+10; int n,q,vasps[maxn],vassuf[maxn]; pair<int,int>all[maxn]; vector<int>fps,fsuf; void vorod(){ cin>>n; for(int i=1;i<=n;i++){ cin>>all[i].first>>all[i].second; } } void pre(){ set<pair<int,int>>st; int now=0; while(true){ int nx=now; if((int)st.size()>0){ nx=max(nx,(*st.rbegin()).first); } if(nx==now){ vasps[now]=1; st.insert(make_pair(all[now+1].second,now+1)); }else{ fps.push_back((*st.rbegin()).second); st.clear(); for(int i=now+1;i<=nx;i++){ st.insert(make_pair(all[i].second,i)); } now=nx; } if(now==n){ break; } } st.clear(); now=n+1; while(true){ int nx=now; if((int)st.size()>0){ nx=min(nx,(*st.begin()).first); } if(nx==now){ vassuf[now]=1; st.insert(make_pair(all[now-1].first,now-1)); }else{ fsuf.push_back((*st.rbegin()).second); st.clear(); for(int i=now-1;i>=nx;i--){ st.insert(make_pair(all[i].first,i)); } now=nx; } if(now==1){ break; } } for(int i=1;i<=n;i++){ vassuf[i]|=vassuf[i-1]; } for(int i=n;i>=1;i--){ vasps[i]|=vasps[i+1]; } } void khor(){ int q; cin>>q; int x; cin>>x; if(x!=1||q!=1){ assert(0); } if(vasps[1]==0){ cout<<fps.size()<<"\n"; }else{ cout<<-1<<"\n"; } } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("inp.txt","r",stdin); vorod(); pre(); khor(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...