Submission #210318

#TimeUsernameProblemLanguageResultExecution timeMemory
210318emanIaicepsaXylophone (JOI18_xylophone)C++14
100 / 100
111 ms380 KiB
#include "xylophone.h" #include<bits/stdc++.h> using namespace std; //static int A[5000]//; int arr[5005]; void solve(int N) { int n = N; arr[1] = 1; int val = query(1, 2); arr[2] = 1+val; for(int i=3;i<=n;i++){ int dif = arr[i-2] - arr[i-1]; if(dif < 0) dif *= -1; int val = query(i-2,i); if(val == dif){ int v2 = query(i-1,i); if(arr[i-1] > arr[i-2]){ arr[i] = arr[i-1] - v2; } else{ arr[i] = arr[i-1] + v2; } } else{ int v2 = query(i-1,i); if(arr[i-1] > arr[i-2]){ if(v2 == val) arr[i] = arr[i-1]-v2; else arr[i] = arr[i-1] + v2; } else{ if(v2 == val) arr[i] = arr[i-1]+v2; else arr[i] = arr[i-1] - v2; } } } /*for(int i=1;i<=n;i++){ cout<<arr[i]<<" \n"[i==n]; }*/ int cmin = arr[1]; for(int i=1;i<=n;i++){ cmin = min(cmin,arr[i]); } cmin *= -1; int p1 = 0, pn = 0; for(int i=1;i<=n;i++){ arr[i] += cmin+1; if(arr[i] == 1) p1 = i; if(arr[i] == n) pn = i; } if(p1 > pn){ for(int i=1;i<=n;i++) arr[i] = n+1-arr[i]; } /*for(int i=1;i<=n;i++){ cout<<arr[i]<<" \n"[i==n]; }*/ for(int i = 1; i <= N; i++) { answer(i, arr[i]); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...