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<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<set>
#include<unordered_set>
#include<unordered_map>
#include"xylophone.h"
using namespace std;
typedef long long ll;
#define chmax(a,b) a=max(a,b)
#define chmin(a,b) a=min(a,b)
#define all(x) x.begin(),x.end()
#define rep(i,n) for(int i=0;i<n;i++)
#define mod 1000000007
#define mad(a,b) a=(a+b)%mod
/*ll val[5010],cnt;
ll query(ll s,ll t){
cnt++;
ll ma=-1e17,mi=1e17;
for(int i=s;i<=t;i++){
chmax(ma,val[i]);
chmin(mi,val[i]);
}
return ma-mi;
}
void answer(ll i,ll x){
cout<<i<<":"<<x<<endl;
}*/
void solve(int n){
ll a[5010];
a[1]=0,a[2]=query(1,2);
for(int i=3;i<=n;i++){
ll x=query(i-1,i);
ll y=query(i-2,i);
if(abs(a[i-2]-a[i-1])+x==y){
if(a[i-2]<a[i-1])a[i]=a[i-1]+x;
else a[i]=a[i-1]-x;
}
else{
if(a[i-2]<a[i-1])a[i]=a[i-1]-x;
else a[i]=a[i-1]+x;
}
}
ll mi=1e17,ma=-1e17,pmi,pma;
for(int i=1;i<=n;i++){
if(mi>a[i])mi=a[i],pmi=i;
if(ma<a[i])ma=a[i],pma=i;
}
for(int i=1;i<=n;i++)a[i]=a[i]-mi+1;
if(pmi>pma)for(int i=1;i<=n;i++)a[i]=n+1-a[i];
for(int i=1;i<=n;i++){
answer(i,a[i]);
}
}
/*int main(){
ll n;
cin>>n;
for(int i=1;i<=n;i++)cin>>val[i];
cnt=0;
solve(n);
cout<<"cnt="<<cnt<<endl;
}*/
Compilation message (stderr)
xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:51:5: warning: 'pma' may be used uninitialized in this function [-Wmaybe-uninitialized]
if(pmi>pma)for(int i=1;i<=n;i++)a[i]=n+1-a[i];
^~
xylophone.cpp:51:5: warning: 'pmi' may be used uninitialized in this function [-Wmaybe-uninitialized]
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |