제출 #1243483

#제출 시각아이디문제언어결과실행 시간메모리
1243483emad234Vrtić (COCI18_vrtic)C++20
32 / 160
1 ms1608 KiB
#include "bits/stdc++.h" #define F first #define S second #define ll long long #define pii pair<int,int> const int mxN = 3e5 + 5; const int mod = 1e9 + 7; using namespace std; int p[mxN],b[mxN], a[mxN],sol[mxN]; signed main(){ int n; cin >>n; int ans = 0; memset(sol,-1,sizeof sol); for(int i = 1;i <= n;i++){ cin >>p[i]; b[p[i]] = i; } for(int i = 1;i <= n;i++) cin >>a[i]; sort(a + 1,a + n + 1); sol[1] = a[1]; int vi = 2,vj = 3; int i = b[1],j = p[1]; while(sol[i] == -1 && sol[j] == -1){ sol[j] = a[vj]; sol[i] = a[vi]; j = p[j]; i = b[i]; vj += 2; vi += 2; } for(int i = 1;i <= n;i++){ // cout<<sol[i]<<' '; int x = i - 1,y = i + 1; if(!x) x = n; if(y > n) y = 1; ans = max({ans,abs(sol[i] - sol[x]),abs(sol[i] - sol[y])}); } cout<<ans<<'\n'; for(int i = 1;i <= n;i++) cout<<sol[i]<<' '; }
#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...
#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...