#include <bits/stdc++.h>
#include "xylophone.h"
#define pb push_back
#define ll long long
#define vll vector <ll>
#define vbool vector<bool>
#define pairll pair<ll,ll>
#define fi first
#define sc second
#define rever greater<ll>()
using namespace std;
void solve(int n){
ll a;
for(ll i = 1; i < n; i++){
if(query(i+1, n) != n-1){
a = i;break;
}
}
vll res(n+1); res[a]=1;
if(a > 1){
ll d = query(a-1, a);
res[a-1] = d+1;
}
for(ll i = a-2; i > 0; i--){
ll x = query(i, i+2);
ll y = query(i, i+1);
ll z = abs(res[i+1]-res[i+2]);
if(x == y+z){
if(res[i+1] > res[i+2]){
res[i] = res[i+1]+y;
}else{
res[i] = res[i+1]-y;
}
}else if(x == z){
if(res[i+1] > res[i+2]){
res[i] = res[i+1]-y;
}else{
res[i] = res[i+1]+y;
}
}else{
if(res[i+1] > res[i+2]){
res[i] = res[i+1]-y;
}else{
res[i] = res[i+1]+y;
}
}
}
res[a+1] = 1 + query(a, a+1);
for(ll i = a+2; i <= n; i++){
ll x = query(i-2, i);
ll y = query(i-1, i);
ll z = abs(res[i-1]-res[i-2]);
if(x == y+z){
if(res[i-1] > res[i-2]){
res[i] = res[i-1]+y;
}else{
res[i] = res[i-1]-y;
}
}else if(x == z){
if(res[i-1] > res[i-2]){
res[i] = res[i-1]-y;
}else{
res[i] = res[i-1]+y;
}
}else{
if(res[i-1] > res[i-2]){
res[i] = res[i-1]-y;
}else{
res[i] = res[i-1]+y;
}
}
}
for(ll i = 1; i <= n; i++)answer(i, res[i]);
}
// int main(){
// ios::sync_with_stdio(false); cin.tie(nullptr);
// ll t=1; //cin >> t;
// for(int i = 1; i <= t; i++){
// solve();
// }
// }
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |