#include "xylophone.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define pii pair<int,int>
#define ss second
#define ff first
#define piii pair<int,pii>
#define debu(x) (cerr << #x  << " = "<< x << "\n")
#define debu2(x,y) (cerr << #x  << " = "<< x << " " << #y << " = " << y << "\n")
#define debu3(x,y,z) (cerr << #x  << " = "<< x << " " << #y << " = " << y << " " << #z << " = " << z<< "\n")
#define bitout(x,y) {\
	cerr << #x << " : ";\
	for (int justforbits = y; justforbits >=0; justforbits--)cout << (((1 << justforbits) & x)>=1);\
	cout << "\n";\
}
#define rangeout(j,rangestart,rangeend) {\
	cerr << "outputting" << #j<< ":\n";\
	for (int forrang = rangestart; forrang <= rangeend; forrang++)cerr << j[forrang] << " ";\
	cerr<<"\n";\
}
#define c1 {cerr << "Checkpoint 1! \n\n";cerr.flush();}
#define c2 {cerr << "Checkpoint 2! \n\n";cerr.flush();}
#define c3 {cerr << "Checkpoint 3! \n\n";cerr.flush();}
#define c4 {cerr << "Checkpoint 4! \n\n";cerr.flush();}
//don't use LLONG_MIN/MAX bc this is an intearctive and you don't have #define int long long
void solve(int N) 
{
	int t1,t2,t3,t4;
	vector<int>wentup;
	wentup.pb(0);wentup.pb(0);
	
	t1=query(1,2);
	wentup.pb(t1);
	
	for(int a=3;a<=N;a++)
	{
		t1=query(a-1,a);
		t2=query(a-2,a);
		if(abs(t1-t2)==abs(wentup[a-2]-wentup[a-1]))
		{
			t1*=(wentup[a-2]<wentup[a-1]?1:-1);
		}
		else
		{
			t1*=(wentup[a-2]<wentup[a-1]?-1:1);
		}
		wentup.pb(wentup[a-1]+t1);
	}
	
	//rangeout(wentup,1,N);
	pii maxval=mp(INT_MIN,0),minval=mp(INT_MAX,0);
	for(int a=1;a<=N;a++)
	{
		//debu2(wentup[a],a);
		maxval=max(maxval,mp(wentup[a],a));
		//debu2(minval.ff,wentup[a]);
		minval=min(minval,mp(wentup[a],a));
	}
	
	//debu2(maxval.ss,minval.ss);
	
	int smallest,mul;
	if(maxval.ss<minval.ss)
	{
		mul=-1;
		smallest=maxval.ss;
	}
	else
	{
		mul=1;
		smallest=minval.ss;
	}
	//debu(smallest);
	
	for(int a=1;a<=N;a++)wentup[a]*=mul;
	vector<int>ans(N+1);
	for(int a=1;a<=N;a++)
	{
		t1=1+wentup[a]-wentup[smallest];
		//debu3(wentup[a],wentup[smallest],a);
		//debu2(t1,a);
		ans[a]=t1;
	}
	
	//rangeout(ans,1,N);
	for(int a=1;a<=N;a++)
	{
		answer(a,ans[a]);
	}
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |