This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |