제출 #199227

#제출 시각아이디문제언어결과실행 시간메모리
199227TAISA_Xylophone (JOI18_xylophone)C++14
100 / 100
104 ms504 KiB
#include "xylophone.h"
#include <bits/stdc++.h>
using namespace std;
static int A[5000];

void solve(int N) {
	vector<int> s(N+1),t(N+1),u(N+1);
	for(int i=1;i<N;i++){
		t[i]=query(i,i+1);
	}
	for(int i=1;i<N-1;i++){
		int k=query(i,i+2);
		if(abs(t[i]+t[i+1])==abs(k)){
			s[i+1]=0;
		}else{
			s[i+1]=1;
		}
	}
	int b=0;
	auto check=[&]{
		int mi=0;
		u[1]=0;
		for(int i=2;i<=N;i++){
			if(b==0){
				u[i]=u[i-1]+t[i-1];
			}else{
				u[i]=u[i-1]-t[i-1];
			}
			mi=min(mi,u[i]);
			if(s[i]==1){
				b^=1;
			}
		}
		bool f=false;
		for(int i=1;i<=N;i++){
			u[i]+=(1-mi);
			if(u[i]==N){
				f=true;
			}
			if(u[i]==1){
				if(f){
					return false;
				}
			}
		}
		for(int i=1;i<=N;i++){
			answer(i,u[i]);
		}
		return true;
	};
	if(check()){
		return;
	}
	b=1;
	check();
}

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

xylophone.cpp:4: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...