Submission #444582

#TimeUsernameProblemLanguageResultExecution timeMemory
444582KhizriXylophone (JOI18_xylophone)C++17
0 / 100
9 ms320 KiB
#include "xylophone.h" #include <bits/stdc++.h> using namespace std; static int A[5000]; int arr[105][105]; void solve(int n) { int k=1000,a=0,b=0; for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ arr[i][j]=query(i,j); if(arr[i][j]==n-1){ if(k>j-i){ k=j-i; a=i; b=j; } } } } A[a]=1; A[b]=n; map<int,bool>mp; mp[1]=true; mp[n]=true; for(int i=a;i>1;i--){ int l=A[i]+arr[i-1][i]; int r=A[i]-arr[i-1][i]; if(1<l&&l<n&&!mp[l]){ A[i-1]=l; mp[l]=true; } else{ A[i-1]=r; mp[r]=true; } } for(int i=a;i<b-1;i++){ int l=A[i]+arr[i][i+1]; int r=A[i]-arr[i][i+1]; if(1<l&&l<n&&!mp[l]){ A[i+1]=l; mp[l]=true; } else{ A[i+1]=r; mp[r]=true; } } for(int i=b;i<n;i++){ int l=A[i]+arr[i][i+1]; int r=A[i]-arr[i][i+1]; if(1<l&&l<n&&!mp[l]){ A[i+1]=l; mp[l]=true; } else{ A[i+1]=r; mp[r]=true; } } for(int i=1;i<=n;i++){ answer(i,A[i]); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...