제출 #759647

#제출 시각아이디문제언어결과실행 시간메모리
759647BulaXylophone (JOI18_xylophone)C++17
컴파일 에러
0 ms0 KiB
#include "xylophone.h" #include<bits/stdc++.h> using namespace std; #define int long long const int mod=1e9+7; void solve(int n){ int id1,l=1,r=n; while(l<=r){ int mid=(l+r)/2; int x=query(mid,n); if (x==n-1) { id1=mid; l=mid+1; }else{ r=mid-1; } } int idn; l=id1+1; r=n; while(l<=r){ int mid=(l+r)/2; int x=query(id1,mid); if (x==n-1) { idn=mid; r=mid-1; }else{ l=mid+1; } } vector<int> vis(n+1),ans(n+1); vis[1]=1; vis[n]=1; ans[id1]=1; ans[idn]=n; for(int i=id1-1;i>=1;i--){ int q=query(i,i+1); int a=ans[i+1]+q; int b=ans[i+1]-q; if(b<=0 || vis[b]==1){ ans[i]=a; vis[a]=1; }else if(a>n || vis[a]==1){ ans[i]=b; vis[b]=1; }else{ int x=query(i,i+2); int mx=max(a,max(ans[i+1],ans[i+2])); int mn=min(a,min(ans[i+1],ans[i+2])); if(x==mx-mn){ ans[i]=a; vis[a]=1; }else{ ans[i]=b; vis[b]=1; } } } for(int i=idn-1;i>id1;i--){ int q=query(i,i+1); int a=ans[i+1]+q; int b=ans[i+1]-q; if(b<=0 || vis[b]==1){ ans[i]=a; vis[a]=1; }else if(a>n || vis[a]==1){ ans[i]=b; vis[b]=1; }else{ int x=query(i,i+2); int mx=max(a,max(ans[i+1],ans[i+2])); int mn=min(a,min(ans[i+1],ans[i+2])); if(x==mx-mn){ ans[i]=a; vis[a]=1; }else{ ans[i]=b; vis[b]=1; } } } for(int i=idn+1;i<=n;i++){ int q=query(i,i-1); int a=ans[i-1]+q; int b=ans[i-1]-q; if(b<=0 || vis[b]==1){ ans[i]=a; vis[a]=1; }else if(a>n || vis[a]==1){ ans[i]=b; vis[b]=1; }else{ int x=query(i,i-2); int mx=max(a,max(ans[i-1],ans[i-2])); int mn=min(a,min(ans[i-1],ans[i-2])); if(x==mx-mn){ ans[i]=a; vis[a]=1; }else{ ans[i]=b; vis[b]=1; } } } for(int i=1;i<=n;i++) answer(i,ans[i]); }

컴파일 시 표준 에러 (stderr) 메시지

xylophone.cpp: In function 'void solve(long long int)':
xylophone.cpp:95:10: warning: 'idn' may be used uninitialized in this function [-Wmaybe-uninitialized]
   95 |  for(int i=idn+1;i<=n;i++){
      |          ^
xylophone.cpp:69:19: warning: 'id1' may be used uninitialized in this function [-Wmaybe-uninitialized]
   69 |  for(int i=idn-1;i>id1;i--){
      |                  ~^~~~
/usr/bin/ld: /tmp/ccNWwvjn.o: in function `main':
grader.cpp:(.text.startup+0x30): undefined reference to `solve(int)'
collect2: error: ld returned 1 exit status