Submission #1290563

#TimeUsernameProblemLanguageResultExecution timeMemory
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...