제출 #759386

#제출 시각아이디문제언어결과실행 시간메모리
759386Nika533Xylophone (JOI18_xylophone)C++14
컴파일 에러
0 ms0 KiB
#pragma GCC diagnostic warning "-std=c++11" #include <bits/stdc++.h> #define int long long #define pb push_back #define f first #define s second #define MOD 1000000007 #define flush fflush(stdout) #define all(x) (x).begin(),(x).end() using namespace std; int n,m,T,k; void solve (int n) { cin>>n; int ind_1; int l=1; int r=n; while (l<=r) { int mid=(l+r)/2; int x=query(mid,n); if (x==n-1) { ind_1=mid; l=mid+1; } else { r=mid-1; } } int ind_n; l=ind_1+1; r=n; while (l<=r) { int mid=(l+r)/2; int x=query(ind_1,mid); if (x==n-1) { ind_n=mid; r=mid-1; } else { l=mid+1; } } vector<bool> fix(n+1,0); vector<int> arr(n+1,0); answer(ind_1,1); answer(ind_n,n); fix[1]=1; arr[ind_1]=1; fix[n]=1; arr[ind_n]=n; for (int i=ind_1-1; i>=1; i--) { int x=query(i,i+1); int val1=arr[i+1]-x; int val2=arr[i+1]+x; if (val1<1 || fix[val1]==1) { arr[i]=val2; fix[val2]=1; answer(i,val2); } else if (val2>n || fix[val2]==1) { arr[i]=val1; fix[val1]=1; answer(i,val1); } else { int y=query(i,i+2); int val; int mx=max(val1,max(arr[i+1],arr[i+2])); int mn=min(val1,min(arr[i+1],arr[i+2])); if (mx-mn==y) { val=val1; } else { val=val2; } arr[i]=val; fix[val]=1; answer(i,val); } } for (int i=ind_n-1; i>ind_1; i--) { int x=query(i,i+1); int val1=arr[i+1]-x; int val2=arr[i+1]+x; if (val1<1 || fix[val1]==1) { arr[i]=val2; fix[val2]=1; answer(i,val2); } else if (val2>n || fix[val2]==1) { arr[i]=val1; fix[val1]=1; answer(i,val1); } else { int y=query(i,i+2); int val; int mx=max(val1,max(arr[i+1],arr[i+2])); int mn=min(val1,min(arr[i+1],arr[i+2])); if (mx-mn==y) { val=val1; } else { val=val2; } arr[i]=val; fix[val]=1; answer(i,val); } } for (int i=ind_n+1; i<=n; i++) { int x=query(i-1,i); int val1=arr[i-1]-x; int val2=arr[i-1]+x; if (val1<1 || fix[val1]==1) { arr[i]=val2; fix[val2]=1; answer(i,val2); } else if (val2>n || fix[val2]==1) { arr[i]=val1; fix[val1]=1; answer(i,val1); } else { int y=query(i-2,i); int val; int mx=max(val1,max(arr[i-1],arr[i-2])); int mn=min(val1,min(arr[i-1],arr[i-2])); if (mx-mn==y) { val=val1; } else { val=val2; } arr[i]=val; fix[val]=1; answer(i,val); } } }

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

xylophone.cpp:1:32: warning: '-std=c++11' is not an option that controls warnings [-Wpragmas]
    1 | #pragma GCC diagnostic warning "-std=c++11"
      |                                ^~~~~~~~~~~~
xylophone.cpp: In function 'void solve(long long int)':
xylophone.cpp:20:9: error: 'query' was not declared in this scope
   20 |   int x=query(mid,n);
      |         ^~~~~
xylophone.cpp:36:9: error: 'query' was not declared in this scope
   36 |   int x=query(ind_1,mid);
      |         ^~~~~
xylophone.cpp:50:2: error: 'answer' was not declared in this scope
   50 |  answer(ind_1,1);
      |  ^~~~~~
xylophone.cpp:60:9: error: 'query' was not declared in this scope
   60 |   int x=query(i,i+1);
      |         ^~~~~
xylophone.cpp:101:9: error: 'query' was not declared in this scope
  101 |   int x=query(i,i+1);
      |         ^~~~~
xylophone.cpp:141:9: error: 'query' was not declared in this scope
  141 |   int x=query(i-1,i);
      |         ^~~~~