# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
226460 | 2020-04-23T20:59:42 Z | thebes | Just Long Neckties (JOI20_ho_t1) | C++14 | 5 ms | 384 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pii; const int MN = 2e5+5; int N, i, b[MN], ans[MN]; pii a[MN]; multiset<int> dif; int main(){ for(scanf("%d",&N),i=1;i<=N+1;i++){ scanf("%d",&a[i].first); a[i].second=i; } for(i=1;i<=N;i++) scanf("%d",&b[i]); sort(b+1,b+N+1); sort(a+1,a+N+2,[](pii i,pii j){return i.first<j.first;}); for(i=1;i<=N;i++) dif.insert(abs(a[i].first-b[i])); for(i=N+1;i>=1;i--){ auto it=dif.end(); it--; ans[a[i].second]=*it; if(i!=1){ int ot = i-1; dif.erase(dif.find(abs(a[i-1].first-b[ot]))); dif.insert(abs(a[i].first-b[ot])); } } for(i=1;i<=N+1;i++) printf("%d ",ans[i]); printf("\n"); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 384 KB | Output is correct |
2 | Incorrect | 5 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 384 KB | Output is correct |
2 | Incorrect | 5 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 384 KB | Output is correct |
2 | Incorrect | 5 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |