제출 #152760

#제출 시각아이디문제언어결과실행 시간메모리
152760junodeveloper사육제 (CEOI14_carnival)C++14
100 / 100
29 ms424 KiB
#include <bits/stdc++.h> #define sz(x) ((int)x.size()) #define all(x) (x).begin(), (x).end() #define fi first #define se second using namespace std; typedef long long ll; typedef long double ld; typedef pair<int,int> pii; typedef pair<ll,ll> pll; int n, par[151]; int T[1010]; int pn(int u){return u==par[u]?u:(par[u]=pn(par[u]));} void us(int a,int b) { a=pn(a),b=pn(b); par[b]=a; } int query(int p,int l,int r) { printf("%d ",r-l+2); int i; printf("%d ",p); for(i=l;i<=r;i++) printf("%d ",i); fflush(stdout); int ret; scanf("%d",&ret); return ret; } void solve(int h,int l,int r) { if(l==r) { T[h]=1; return; } int mid=(l+r)/2; solve(h*2,l,mid); solve(h*2+1,mid+1,r); int i,ret; for(i=l;i<=mid;i++) { ret=query(i,mid+1,r); if(ret==T[h*2+1]+1) continue; else { int cur=h*2+1, tl=mid+1, tr=r; while(tl<tr) { int tmid=(tl+tr)/2; int tret=query(i,tl,tmid); if(tret==T[cur*2]+1) { tl=tmid+1; cur=cur*2+1; } else { tr=tmid; cur=cur*2; } } us(i,tl); } } vector<int> v; for(i=l;i<=r;i++)v.push_back(pn(i)); sort(all(v)); v.erase(unique(all(v)),v.end()); T[h]=sz(v); } int main() { scanf("%d",&n); int i; for(i=1;i<=n;i++) par[i]=i; solve(1,1,n); vector<int> v; for(i=1;i<=n;i++) { v.push_back(pn(i)); } sort(all(v)); v.erase(unique(all(v)),v.end()); printf("0 "); for(i=1;i<=n;i++) { int p=pn(i); p=lower_bound(all(v),p)-v.begin()+1; printf("%d ",p); } fflush(stdout); return 0; }

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

carnival.cpp: In function 'int query(int, int, int)':
carnival.cpp:25:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&ret);
  ~~~~~^~~~~~~~~~~
carnival.cpp: In function 'int main()':
carnival.cpp:63:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
  ~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...