Submission #525584

#TimeUsernameProblemLanguageResultExecution timeMemory
525584huangqrXylophone (JOI18_xylophone)C++14
100 / 100
108 ms328 KiB
#include "xylophone.h"

static int A[5000];

#include<bits/stdc++.h>
using namespace std;

void solve(int N) {
	int v[10005];
	v[1]=1;
	v[2]=1+query(1,2);
	int mn=1;
	for(int i=3;i<=N;i++){
		int x=query(i-2,i),y=query(i-1,i);
		if(v[i-1]>v[i-2]){
			if(x==y)v[i]=v[i-1]-y;
			else if(x>y&&x==v[i-1]-v[i-2])v[i]=v[i-1]-y;
			else if(x-y==v[i-1]-v[i-2])v[i]=v[i-1]+y;
			else assert(0);
		}
		else{
			if(x==y)v[i]=v[i-1]+y;
			else if(x>y&&x==v[i-2]-v[i-1])v[i]=v[i-1]+y;
			else if(x-y==v[i-2]-v[i-1])v[i]=v[i-1]-y;
			else assert(0);
		}
		mn=min(mn,v[i]);
	}
	for(int i=1;i<=N;i++)v[i]-=(mn-1);
	int pos_1,pos_N;
	for(int i=1;i<=N;i++){
		if(v[i]==1)pos_1=i;
		if(v[i]==N)pos_N=i;
	}
	if(pos_1>pos_N){
		for(int i=1;i<=N;i++)v[i]=N+1-v[i];
	}
	/*for(int i = 1; i <= N; i++) {
		cout<<v[i]<<" ";
		//answer(i, i);
	}*/
	for(int i=1;i<=N;i++)answer(i,v[i]);
}

Compilation message (stderr)

xylophone.cpp:3:12: warning: 'A' defined but not used [-Wunused-variable]
    3 | static int A[5000];
      |            ^
xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:35:2: warning: 'pos_N' may be used uninitialized in this function [-Wmaybe-uninitialized]
   35 |  if(pos_1>pos_N){
      |  ^~
xylophone.cpp:35:2: warning: 'pos_1' may be used uninitialized in this function [-Wmaybe-uninitialized]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...