Submission #1223860
Source Code Expand
#include<iostream> #include<cstdio> #include<algorithm> #include<set> #include<map> #include<queue> #include<cassert> #define PB push_back #define MP make_pair #define ff first #define ss second #define sz(v) (in((v).size())) #define forn(i,n) for(in i=0;i<(n);++i) #define forv(i,v) forn(i,sz(v)) #define fors(i,s) for(auto i=(s).begin();i!=(s).end();++i) #define all(v) (v).begin(),(v).end() using namespace std; typedef long long in; typedef vector<in> VI; typedef vector<VI> VVI; typedef pair<in,in> PII; vector<pair<PII,in> > evt; vector<PII> rvt; set<PII> cnu; VI obv; multiset<in> bd; in bssc=0; VI rbd; VI bnus; VI prtof; VI typof; VI usd; void imp(){ in q; cin>>q; forn(z,q) cout<<"-1\n"; exit(0); } in vlof(in cc){ cc=lower_bound(all(rbd),cc)-rbd.begin(); if(cc==sz(bnus)) return -1; in cv=bnus[cc]; if(cv<0) return -1; return cv+bssc; } int main(){ ios::sync_with_stdio(0); cin.tie(0); in n; cin>>n; in a,b; rvt.resize(n); usd.resize(n); forn(z,n){ cin>>a>>b; rvt[z]=MP(b,a); if(a<=b){ obv.PB(a); continue; } evt.PB(MP(MP(a,z),1)); evt.PB(MP(MP(b,z),0)); } forn(z,n+1){ cin>>a; bd.insert(a); } bssc=sz(obv); forv(i,obv){ auto it=bd.lower_bound(obv[i]); if(it==bd.end()){ imp(); } bd.erase(it); } fors(i,bd) rbd.PB(*i); n=sz(rbd); prtof.resize(n,-1); typof.resize(n,-1); bnus.resize(n); const in inf=1e7; sort(all(evt)); in nxev=0; in nd; obv.clear(); in bdbl=-1; forv(z,rbd){ nd=rbd[z]; while(nxev<sz(evt) && evt[nxev].ff.ff<=nd){ if(evt[nxev].ss==0){ cnu.insert(MP(rvt[evt[nxev].ff.ss].ss,evt[nxev].ff.ss)); } else{ if(!usd[evt[nxev].ff.ss]){ cnu.erase(evt[nxev].ff); ++bssc; obv.PB(evt[nxev].ff.ss); } } ++nxev; } if(sz(obv)>0){ prtof[z]=obv.back(); typof[z]=1; obv.pop_back(); continue; } if(sz(cnu)==0){ if(bdbl!=-1) imp(); bdbl=z; continue; } auto it=cnu.end(); --it; prtof[z]=it->second; typof[z]=0; usd[it->second]=1; cnu.erase(it); } assert(bdbl!=-1); bnus[bdbl]=0; for(in i=bdbl+1;i<sz(bnus);++i) bnus[i]=-inf; in cc; for(in i=bdbl-1;i>=0;--i){ bnus[i]=bnus[i+1]; if(typof[i]==0){ cc=rvt[prtof[i]].ss; cc=lower_bound(all(rbd),cc)-rbd.begin(); if(cc<sz(bnus)) bnus[i]=max(bnus[i],bnus[cc]+1); } } in q; cin>>q; in ca,cb; forn(z,q){ cin>>ca>>cb; in c1=vlof(ca); if(c1!=-1) ++c1; cout<<max(c1,vlof(cb))<<"\n"; } return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Two Faced Cards |
User | w4yneb0t |
Language | C++14 (GCC 5.4.1) |
Score | 2000 |
Code Size | 2763 Byte |
Status | AC |
Exec Time | 945 ms |
Memory | 17260 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 2000 / 2000 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt, subtask_1_43.txt, subtask_1_44.txt, subtask_1_45.txt, subtask_1_46.txt, subtask_1_47.txt, subtask_1_48.txt, subtask_1_49.txt, subtask_1_50.txt, subtask_1_51.txt, subtask_1_52.txt, subtask_1_53.txt, subtask_1_54.txt, subtask_1_55.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 1 ms | 256 KB |
sample_02.txt | AC | 1 ms | 256 KB |
sample_03.txt | AC | 1 ms | 256 KB |
subtask_1_01.txt | AC | 70 ms | 7316 KB |
subtask_1_02.txt | AC | 73 ms | 8560 KB |
subtask_1_03.txt | AC | 35 ms | 3896 KB |
subtask_1_04.txt | AC | 70 ms | 11884 KB |
subtask_1_05.txt | AC | 45 ms | 3828 KB |
subtask_1_06.txt | AC | 108 ms | 12524 KB |
subtask_1_07.txt | AC | 85 ms | 14956 KB |
subtask_1_08.txt | AC | 109 ms | 15852 KB |
subtask_1_09.txt | AC | 105 ms | 13420 KB |
subtask_1_10.txt | AC | 59 ms | 8816 KB |
subtask_1_11.txt | AC | 42 ms | 8048 KB |
subtask_1_12.txt | AC | 55 ms | 8048 KB |
subtask_1_13.txt | AC | 78 ms | 7920 KB |
subtask_1_14.txt | AC | 43 ms | 7280 KB |
subtask_1_15.txt | AC | 64 ms | 12780 KB |
subtask_1_16.txt | AC | 32 ms | 3060 KB |
subtask_1_17.txt | AC | 154 ms | 16748 KB |
subtask_1_18.txt | AC | 35 ms | 6384 KB |
subtask_1_19.txt | AC | 52 ms | 9456 KB |
subtask_1_20.txt | AC | 120 ms | 15852 KB |
subtask_1_21.txt | AC | 162 ms | 12336 KB |
subtask_1_22.txt | AC | 151 ms | 15980 KB |
subtask_1_23.txt | AC | 165 ms | 12336 KB |
subtask_1_24.txt | AC | 153 ms | 15980 KB |
subtask_1_25.txt | AC | 163 ms | 17004 KB |
subtask_1_26.txt | AC | 152 ms | 15852 KB |
subtask_1_27.txt | AC | 90 ms | 15596 KB |
subtask_1_28.txt | AC | 157 ms | 16236 KB |
subtask_1_29.txt | AC | 159 ms | 16236 KB |
subtask_1_30.txt | AC | 151 ms | 16364 KB |
subtask_1_31.txt | AC | 89 ms | 16492 KB |
subtask_1_32.txt | AC | 945 ms | 17260 KB |
subtask_1_33.txt | AC | 160 ms | 16748 KB |
subtask_1_34.txt | AC | 150 ms | 17132 KB |
subtask_1_35.txt | AC | 89 ms | 15724 KB |
subtask_1_36.txt | AC | 154 ms | 15980 KB |
subtask_1_37.txt | AC | 158 ms | 16236 KB |
subtask_1_38.txt | AC | 148 ms | 15852 KB |
subtask_1_39.txt | AC | 91 ms | 16620 KB |
subtask_1_40.txt | AC | 152 ms | 16492 KB |
subtask_1_41.txt | AC | 152 ms | 12304 KB |
subtask_1_42.txt | AC | 126 ms | 9080 KB |
subtask_1_43.txt | AC | 155 ms | 16880 KB |
subtask_1_44.txt | AC | 130 ms | 10272 KB |
subtask_1_45.txt | AC | 75 ms | 9376 KB |
subtask_1_46.txt | AC | 155 ms | 12304 KB |
subtask_1_47.txt | AC | 118 ms | 8692 KB |
subtask_1_48.txt | AC | 155 ms | 15600 KB |
subtask_1_49.txt | AC | 128 ms | 9216 KB |
subtask_1_50.txt | AC | 84 ms | 8848 KB |
subtask_1_51.txt | AC | 1 ms | 256 KB |
subtask_1_52.txt | AC | 1 ms | 256 KB |
subtask_1_53.txt | AC | 1 ms | 256 KB |
subtask_1_54.txt | AC | 1 ms | 256 KB |
subtask_1_55.txt | AC | 1 ms | 256 KB |