제출 #39568

#제출 시각아이디문제언어결과실행 시간메모리
39568igziICC (CEOI16_icc)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> //#include "icc.h" #define maxN 101 using namespace std; vector <int> v[maxN]; vector <int> x,a,b; int N; int Query(vector<int> &a, vector<int> &b) { int tmp[2][maxN]; for (int i = 0; i < a.size(); ++i) tmp[0][i] = a[i]; for (int i = 0; i < b.size(); ++i) tmp[1][i] = b[i]; return query(a.size(), b.size(), tmp[0], tmp[1]); } void formiraj(int n,int d){ a.clear(); b.clear(); for(int i=0;i<n;i++){ int r=i/d; if(r%2) b.push_back(x[i]); else a.push_back(x[i]); } } pair <int,int> resi(vector <int> &a,vector <int> &b){ pair <int,int> ans; ans=make_pair(-1,-1); int i; vector <int> s; int A,B; A=a.size(); B=b.size(); int l=0,d=A-1,m; while(d!=l){ m=(l+d)/2; for(i=l;i<m;i++){ s.push_back(a[i]); } if(Query(b,s)) d=m; else l=m+1; s.clear(); } ans.first=a[l]; l=0,d=B-1; while(d!=l){ m=(l+d)/2; for(i=l;i<m;i++){ s.push_back(b[i]); } if(Query(a,s)) d=m; else l=m+1; s.clear(); } ans.second=b[l]; return ans; } void spoj(int a,int b){ int i; if(a>b) swap(a,b); for(i=0;i<v[b].size();i++){ v[a].push_back(v[b][i]); } v[b].clear(); } void run(int n){ N=n; int i,A=0,B=0,s; vector <int> a,b; for(i=1;i<=N;i++){ v[i].push_back(i); } while(n>1){ s=n & -n; if(s==n) s/=2; for(i=1;i<=N;i++){ if(!v[i].empty()) x.push_back(i); } for(i=x.size();i<2*s;i++){ x.push_back(-1); } for(i=0;i<s;i++){ if(x[i]>=1 && x[i]<=N) a.push_back(x[i]); } for(i=s;i<x.size();i++){ if(x[i]>=1 && x[i]<=N) b.push_back(x[i]); } int d=s; formiraj(x.size(),s); while(d/2>0 && Query(a,b)==0){ d=d/2; formiraj(x.size(),d); a.clear(); b.clear(); } pair <int,int> r; r=make_pair(1,1); r=resi(a,b); a.clear(); b.clear(); setRoad(r.first,r.second); spoj(r.first,r.second); n--; } }

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

icc.cpp: In function 'int Query(std::vector<int>&, std::vector<int>&)':
icc.cpp:12:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < a.size(); ++i) tmp[0][i] = a[i];
                     ^
icc.cpp:13:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < b.size(); ++i) tmp[1][i] = b[i];
                     ^
icc.cpp:14:50: error: 'query' was not declared in this scope
   return query(a.size(), b.size(), tmp[0], tmp[1]);
                                                  ^
icc.cpp: In function 'void spoj(int, int)':
icc.cpp:59:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(i=0;i<v[b].size();i++){
              ^
icc.cpp: In function 'void run(int)':
icc.cpp:84:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(i=s;i<x.size();i++){
                  ^
icc.cpp:98:33: error: 'setRoad' was not declared in this scope
         setRoad(r.first,r.second);
                                 ^
icc.cpp:67:11: warning: unused variable 'A' [-Wunused-variable]
     int i,A=0,B=0,s;
           ^
icc.cpp:67:15: warning: unused variable 'B' [-Wunused-variable]
     int i,A=0,B=0,s;
               ^