Submission #83002

#TimeUsernameProblemLanguageResultExecution timeMemory
83002VasiljkoXylophone (JOI18_xylophone)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; int a[5000]; bool vis[5000]; void solve(int n) { int diff=n-1; int ind; int lo=2; int hi=n-1; while(lo<=hi){ int mid=(lo+hi)>>1; if(query(mid,n)==diff){ lo=mid+1; }else{ ind=mid-1; hi=mid-1; } } /*int val=query(2,n); for(int i=1;i<n;i++){ int val=query(i+1,n); if(val!=diff){ ind=i; break; } }*/ a[ind]=1; a[ind+1]=1+query(ind,ind+1); if(ind>1){ a[ind-1]=1+query(ind-1,ind); vis[a[ind-1]]=true; } vis[a[ind]]=true; vis[a[ind+1]]=true; for(int i=ind+2;i<=n;i++){ int q=query(i-1,i); if(vis[a[i-1]+q]){ a[i]=a[i-1]-q; continue; } if(vis[a[i-1]-q]){ a[i]=a[i-1]+q; continue; } int p=query(i-2,i); int val=a[i-1]+q; if(max(val,max(a[i-1],a[i-2]))-min(val,min(a[i-1],a[i-2]))==p){ a[i]=val; }else{ a[i]=a[i-1]-q; } vis[a[i]]=true; } if(ind>1){ for(int i=ind-2;i>=1;i--){ int q=query(i,i+1); if(vis[a[i+1]+q]){ a[i]=a[i+1]-q; continue; } if(vis[a[i+1]-q]){ a[i]=a[i+1]+q; continue; } int p=query(i,i+2); int val=a[i+1]+q; if(max(val,max(a[i+1],a[i+2]))-min(val,min(a[i+1],a[i+2]))==p){ a[i]=val; }else{ a[i]=a[i+1]-q; } vis[a[i]]=true; } } for(int i=1;i<=n;i++)answer(i,a[i]); }

Compilation message (stderr)

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:16:12: error: 'query' was not declared in this scope
         if(query(mid,n)==diff){
            ^~~~~
xylophone.cpp:34:16: error: 'query' was not declared in this scope
     a[ind+1]=1+query(ind,ind+1);
                ^~~~~
xylophone.cpp:89:26: error: 'answer' was not declared in this scope
     for(int i=1;i<=n;i++)answer(i,a[i]);
                          ^~~~~~
xylophone.cpp:89:26: note: suggested alternative: 'assert'
     for(int i=1;i<=n;i++)answer(i,a[i]);
                          ^~~~~~
                          assert