Submission #403407

#TimeUsernameProblemLanguageResultExecution timeMemory
403407zaneyu레이저 센서 (KOI16_laser)C++14
0 / 100
1 ms204 KiB
/*input 2 0 0 1 1 2 4 3 9 -1 1 -2 4 */ #include<bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0;i<n;i++) #define REP1(i,n) for(int i=1;i<=n;i++) #define ll long long #define pii pair<int,int> #define pb push_back #define ALL(x) x.begin(),x.end() #define f first #define s second #define sz(x) (int)x.size() const int maxn=2e3+5; pii ans[maxn]; int main(){ ios::sync_with_stdio(false),cin.tie(0); int n; cin>>n; vector<pii> v; priority_queue<pii> less,more; vector<pii> vv; REP(i,n){ int x,y; cin>>x>>y; v.pb({x,i}); } REP1(i,2*n){ int x,y; cin>>x>>y; vv.pb({x,i}); } sort(ALL(v)); sort(ALL(vv)); REP1(i,sz(vv)-1) if(vv[i].f==vv[i-1].f) assert(false); REP1(i,sz(v)-1) if(v[i].f==v[i-1].f) assert(false); int p=0; for(auto &x:v){ while(p<sz(vv) and vv[p].f<=x.f){ less.push(vv[p]); ++p; } if(!sz(less)){ continue; } else{ ans[x.s].f=less.top().s; less.pop(); } if(!sz(less)){ continue; } else{ ans[x.s].s=less.top().s; less.pop(); } } vv.erase(vv.begin(),vv.begin()+p); while(sz(less)) vv.pb(less.top()),less.pop(); reverse(ALL(vv)); reverse(ALL(v)); p=0; for(auto x:v){ while(p<sz(vv) and vv[p].f>=x.f){ more.push(vv[p]); ++p; } if(!ans[x.s].f){ ans[x.s].f=more.top().s; more.pop(); } if(!ans[x.s].s){ ans[x.s].s=more.top().s; more.pop(); } } REP(i,n) cout<<ans[i].f<<' '<<ans[i].s<<'\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...