#include <bits/stdc++.h>
#include "xylophone.h"
static int A[5000];
using namespace std;
void solve(int N) {
vector<int> doubles;
vector<int> triples;
vector<int> dir;
vector<int> sol;
dir.push_back(1);
sol.push_back(0);
for(int i = 1; i < N; ++i){
doubles.push_back(query(i,i+1));
}
for(int i = 1; i < N-1; ++i){
triples.push_back(query(i,i+2));
}
for (int i = 0; i < N-2; ++i){
if (doubles[i] + doubles[i+1] == triples[i]){
dir.push_back(dir[dir.size()-1]);
}else{
dir.push_back(-dir[dir.size()-1]);
}
}
for (int i = 0; i < N-1; ++i){
sol.push_back(sol[sol.size()-1] + dir[i]*doubles[i]);
}
int min_index, mini, max_index, maxi;
mini = 1e9;
maxi = -1e8;
for (int i = 0; i < N; ++i){
if (sol[i] < mini){
mini = sol[i];
min_index = i;
}
if (sol[i]> maxi){
maxi = sol[i];
max_index = i;
}
}
if (max_index < min_index){
for (int i = 0; i < N; ++i){
sol[i] = -sol[i];
}
}
mini = 1e9;
for (int i = 0; i < N; ++i){
if (sol[i] < mini){
mini = sol[i];
min_index = i;
}
}
int decalage = abs(mini-1);
// for (int i: sol){
// cout<<i<<endl;
// }
for (int i = 0; i < N; ++i){
answer(i+1,sol[i] + decalage);
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |