제출 #1290563

#제출 시각아이디문제언어결과실행 시간메모리
1290563mefe123Xylophone (JOI18_xylophone)C++20
0 / 100
0 ms332 KiB
	#include "xylophone.h"
	#include <iostream> 
	#include <vector> 
	#include <string> 
	#include <algorithm>
	#include <cmath> 
	#include <map>			
	#include <set>
	#include <queue>	
	#include <stack>
	#include <unordered_map>
	#include <unordered_set>
	#include <bitset>
	#include <numeric> 
	#include <functional>
	#include <iomanip>
	#include <sstream>
	#include <numeric>
	
	using namespace std;
	//static int A[5000];

void solve(int n){
	
	vector<int> cevap(n+1);
	vector<int> cevap1(n+1);
	cevap1[1]=0;
	cevap[1]=0;
	int f=query(1,2);
	cevap[2]=f;
	cevap1[2]=-f;
	for(int i=3;i<=n;i++){
		int v1=query(i-1,i);
		int v2=query(i-2,i);
		if(v1==v2){
			if(cevap[i-2]>cevap[i-1]){
				cevap[i]=cevap[i-1]+v2;
			}
			else{
				cevap[i]=cevap[i-1]-v2;
			}
			
			if(cevap1[i-2]>cevap1[i-1]){
				cevap1[i]=cevap1[i-1]+v2;
			}
			else{
				cevap1[i]=cevap1[i-1]-v2;
			}
		}
		else{
			if(cevap[i-2]-cevap[i-1]==v2){
				cevap[i+1]=cevap[i]+v1;
			}
			else if(cevap[i-1]-cevap[i-2]==v2){
				cevap[i+1]=cevap[i]-v1;
			}
			else{
				if(cevap[i-2]>cevap[i-1]){
					cevap[i+1]=cevap[i-1]-v1;
				}
				else{
					cevap[i+1]=cevap[i-1]+v1;
				}
			}
			
			if(cevap1[i-2]-cevap1[i-1]==v2){
				cevap1[i+1]=cevap1[i]+v1;
			}
			else if(cevap1[i-1]-cevap1[i-2]==v2){
				cevap1[i+1]=cevap1[i]-v1;
			}
			else{
				if(cevap1[i-2]>cevap1[i-1]){
					cevap1[i+1]=cevap1[i-1]-v1;
				}
				else{
					cevap1[i+1]=cevap1[i-1]+v1;
				}
			}
		}
	}
	int ma=0;
	int ma1=0;
	for(int i=2;i<=n;i++){
		if(cevap[ma]<cevap[i]){
			ma=i;
		}
		if(cevap1[ma1]<cevap1[i]){
			ma1=i;
		}
	}
	ma=n-cevap[ma];
	ma1=n-cevap1[ma1];
	for(int i=1;i<=n;i++){
		cevap[i]+=ma;
		cevap1[i]+=ma1;
	}
	int kontrol=-1;
	for(int i=0;i<n;i++){
		if(cevap[i]==n){
			kontrol=0;
			break;
		}
		if(cevap[i]==n){
			kontrol=1;
			break;
		}
	}
	if(kontrol==0){
		for(int i=1;i<=n;i++){
			answer(i,cevap1[i]);
		}
	}
	else{
		for(int i=1;i<=n;i++){
			answer(i ,cevap1[i]);
		}
	}

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...