#include "xylophone.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
void solve(int N) {
vector<int> twovals(N-1), threevals(N-2);
for(int i=0;i<N-1;++i){
twovals[i] = query(i+1, i+2);
}
for(int i=0;i<N-2;++i){
threevals[i] = query(i+1, i+3);
}
vector<int> sign = {1}; // 1 = +, -1 = -
for(int i=0;i<N-2;++i){
if (twovals[i]+twovals[i+1]==threevals[i]) {
sign.push_back(sign.back());
} else {
sign.push_back(-sign.back());
}
}
vector<int> nums= {0};
for(int i=0;i<N-1;++i){
nums.push_back(nums.back() + sign[i] * twovals[i]);
}
int minind = min_element(nums.begin(), nums.end()) - nums.begin();
int maxind = max_element(nums.begin(), nums.end()) - nums.begin();
if (maxind < minind){
// negate all the numbers
for(int i=0;i<N;++i){
nums[i] = -nums[i];
}
}
int minv = *min_element(nums.begin(), nums.end());
for(int i=0;i<N;++i){
answer(i+1, nums[i] - minv + 1);
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |