Submission #70476

#TimeUsernameProblemLanguageResultExecution timeMemory
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]); }

Compilation message (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...