Submission #128272

#TimeUsernameProblemLanguageResultExecution timeMemory
128272miguelXylophone (JOI18_xylophone)C++14
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; #define rc(x) return cout<<x<<endl,0 #define pb push_back #define dbg(x) cout << #x << '=' << x << '\n'; #define ll long long #define sz size() #define x first #define y second #define pi pair <int, int> #define pii pair <int, pi> #define vi vector <int> const ll mod = 1e9 + 7; int n, a[5001]; int query(int l, int r){ int mx=0, mn=n; for(int i=l; i<=r; i++){ mn=min(mn, a[i]); mx=max(mx, a[i]); } return (mx-mn); } void solve(int n){ int t[5001]; int l=1, r=n; while(r-l>1){ int mid=(l+r)/2; if(query(1, mid)!=n-1) l=mid; else r=mid; } int mx=r; l=1, r=mx; while(r-l>1){ int mid=(l+r)/2; if(query(mid, mx)!=n-1) r=mid; else l=mid; } int mn=l; t[mn]=1, t[mx]=n; if(mn>1) t[mn-1]=query(mn-1, mn)+1; t[mn+1]=query(mn, mn+1)+1; if(mx<n) t[mx+1]=n-query(mx, mx+1); t[mx-1]=n-query(mx-1, mx); for(int i=mn-1; i>=2; i--){ int q1=query(i-1, i+1), q2=query(i-1, i), q3=query(i, i+1); if(q1==q2+q3){ if(t[i+1]>t[i]) t[i-1]=t[i]-q2; else t[i-1]=t[i]+q2; } else{ if(t[i+1]>t[i]) t[i-1]=t[i]+q2; else t[i-1]=t[i]-q2; } } for(int i=mn+1; i<=mx-2; i++){ int q1=query(i-1, i+1), q2=query(i-1, i), q3=query(i, i+1); if(q1==q2+q3){//cout<<i<<"mamamia"<<endl; if(t[i-1]>t[i]) t[i+1]=t[i]-q3; else t[i+1]=t[i]+q3; } else{ if(t[i-1]>t[i]) t[i+1]=t[i]+q3; else t[i+1]=t[i]-q3; } } for(int i=mx+1; i<=n-1; i++){ int q1=query(i-1, i+1), q2=query(i-1, i), q3=query(i, i+1); if(q1==q2+q3){ if(t[i-1]>t[i]) t[i+1]=t[i]-q3; else t[i+1]=t[i]+q3; } else{ if(t[i-1]>t[i]) t[i+1]=t[i]+q3; else t[i+1]=t[i]-q3; } } //for(int i=1; i<=n; i++) cout<<t[i]<<"x "; for(int i=1; i<=n; i++) answer(i, t[i]); //cout<<mn<<" "<<mx<<endl; }

Compilation message (stderr)

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:82:29: error: 'answer' was not declared in this scope
     for(int i=1; i<=n; i++) answer(i, t[i]);
                             ^~~~~~
xylophone.cpp:82:29: note: suggested alternative: 'assert'
     for(int i=1; i<=n; i++) answer(i, t[i]);
                             ^~~~~~
                             assert