This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |