제출 #70476

#제출 시각아이디문제언어결과실행 시간메모리
70476KLPPXylophone (JOI18_xylophone)C++14
100 / 100
156 ms832 KiB
#include "xylophone.h"
#include<iostream>

using namespace std;
static int A[5000];
int max(int a, int b){
	if(a>b)return a;
	return b;
}
void solve(int N) {
	int n=N;
	//cout<<n<<endl;
	int resposta1[n-1];
	int resposta2[n-2];
	for(int i=0;i<n-1;i++){
		resposta1[i]=query(i+1,i+2);
		//cout<<resposta1[i]<<endl;
		
	}
	for(int i=0;i<n-2;i++){
		resposta2[i]=query(i+1,i+3);
		//cout<<resposta2[i]<<endl;
	}
	int sign[n-1];
	sign[0]=1;
	for(int i=0;i<n-2;i++){
		if(resposta2[i]==max(resposta1[i],resposta1[i+1])){
			sign[i+1]=-sign[i];
		}else{
			sign[i+1]=sign[i];
		}
		//cout<<sign[i+1]<<endl;
	}
	int arr[n];
	arr[0]=0;
	for(int i=0;i<n-1;i++){
		arr[i+1]=resposta1[i]*sign[i]+arr[i];
	}
	int minimo=0;
	for(int i=0;i<n;i++){
		if(arr[minimo]>arr[i])minimo=i;
		//cout<<arr[i]<<endl;
	}int minimo2=arr[minimo];
	for(int i=0;i<n;i++){//cout<<arr[i]<<" ";
		arr[i]+=1-minimo2;
		//cout<<arr[i]<<endl;
	}
	int maximo=0;
	for(int i=0;i<n;i++){
		if(arr[maximo]<arr[i])maximo=i;
	}//cout<<maximo<<endl;
	if(maximo<minimo){
		for(int i=0;i<n;i++)arr[i]=n-arr[i]+1;
	}
	for(int i=0;i<n;i++)answer(i+1,arr[i]);
}

컴파일 시 표준 에러 (stderr) 메시지

xylophone.cpp:5:12: warning: 'A' defined but not used [-Wunused-variable]
 static int A[5000];
            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...