제출 #1252457

#제출 시각아이디문제언어결과실행 시간메모리
1252457keremXylophone (JOI18_xylophone)C++20
0 / 100
0 ms408 KiB
#include "xylophone.h" #include <bits/stdc++.h> using namespace std; void solve(int N) { int a[N]; for(int i=0;i<N-1;i++) a[i]=query(i,i+1); for(int i=0;i<N-2;i++){ int t=query(i,i+2); if(t==a[i]+a[i+1]) a[i+1]*=a[i]>0?1:-1; else a[i+1]*=a[i]>0?-1:1; } int k1=0,k2=0,cev1[N],cev2[N]; cev1[0]=cev2[0]=0; for(int i=1;i<N;i++){ cev1[i]=cev1[i-1]+a[i-1]; cev2[i]=cev2[i-1]-a[i-1]; k1=min(k1,cev1[i]); k2=min(k2,cev1[i]); } int bas,son; for(int i=0;i<N;i++){ if(cev1[i]-k1==1) bas=i; if(cev1[i]-k1==N) son=i; } if(bas<son){ for(int i=0;i<N;i++) answer(i+1,cev1[i]-k1); } else{ for(int i=0;i<N;i++) answer(i+1,cev2[i]-k2); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...