#include<bits/stdc++.h>
#include"icc.h"
using namespace std;
const int maxn=110;
const int maxk=7;
vector<int>v[maxn];
int faz_query(int x, int y, vector<int>a, vector<int>b){
int A[x], B[y];
for(int i=0;i<x;i++) A[i]=a[i];
for(int i=0;i<y;i++) B[i]=b[i];
return query(x,y,A,B);
}
int find(vector<int> a, vector<int> b){
int id=0;
for(int k=0;k<maxk;k++){
vector<int>aux;
for(int j=0;j<a.size();j++) if(j&(1<<k)) aux.push_back(a[j]);
if(aux.size()&&faz_query(aux.size(),b.size(),aux,b)) id+=(1<<k);
}
return a[id];
}
void run(int n){
for(int i=1;i<=n;i++){
v[i].push_back(i);
pai[i]=i;
}
for(int i=1;i<n;i++){
vector<int>a, b;
int at=__lg(n-i+1);
for(int k=0;k<=at;k++){
a.clear(); b.clear();
for(int j=1;j<=n;j++){
if(j&(1<<k)) for(int x : v[j]) a.push_back(x);
else for(int x : v[j]) b.push_back(x);
}
if(k==at) break;
if(a.size()&&b.size()&&faz_query(a.size(),b.size(),a,b)) break;
}
int u=find(a,b), w=find(b,a), repu, repw;
setRoad(u,w);
for(int i=1;i<=n;i++){
for(int x : v[i]){
if(x==u) repu=i;
if(x==w) repw=i;
}
}
if(repu>repw) swap(repu,repw);
for(int x : repw) v[repu].push_back(repw);
v[repw].clear();
swap(v[repw],v[n-i+1]);
}
}
컴파일 시 표준 에러 (stderr) 메시지
icc.cpp: In function 'void run(int)':
icc.cpp:25:9: error: 'pai' was not declared in this scope
25 | pai[i]=i;
| ^~~
icc.cpp:48:21: error: 'begin' was not declared in this scope
48 | for(int x : repw) v[repu].push_back(repw);
| ^~~~
icc.cpp:48:21: note: suggested alternatives:
In file included from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:166,
from icc.cpp:1:
/usr/include/c++/13/valarray:1238:5: note: 'std::begin'
1238 | begin(const valarray<_Tp>& __va) noexcept
| ^~~~~
In file included from /usr/include/c++/13/bits/ranges_algobase.h:38,
from /usr/include/c++/13/bits/ranges_algo.h:38,
from /usr/include/c++/13/algorithm:63,
from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51:
/usr/include/c++/13/bits/ranges_base.h:489:44: note: 'std::ranges::__cust::begin'
489 | inline constexpr __cust_access::_Begin begin{};
| ^~~~~
In file included from /usr/include/c++/13/filesystem:50,
from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:200:
/usr/include/c++/13/bits/fs_dir.h:607:3: note: 'std::filesystem::__cxx11::begin'
607 | begin(recursive_directory_iterator __iter) noexcept
| ^~~~~
In file included from /usr/include/c++/13/bits/stl_iterator_base_types.h:71,
from /usr/include/c++/13/bits/stl_algobase.h:65,
from /usr/include/c++/13/algorithm:60:
/usr/include/c++/13/bits/iterator_concepts.h:984:10: note: 'std::ranges::__cust_access::begin'
984 | void begin(const auto&) = delete;
| ^~~~~
icc.cpp:48:21: error: 'end' was not declared in this scope
48 | for(int x : repw) v[repu].push_back(repw);
| ^~~~
icc.cpp:48:21: note: suggested alternatives:
/usr/include/c++/13/valarray:1265:5: note: 'std::end'
1265 | end(const valarray<_Tp>& __va) noexcept
| ^~~
/usr/include/c++/13/bits/ranges_base.h:490:42: note: 'std::ranges::__cust::end'
490 | inline constexpr __cust_access::_End end{};
| ^~~
/usr/include/c++/13/bits/fs_dir.h:612:3: note: 'std::filesystem::__cxx11::end'
612 | end(recursive_directory_iterator) noexcept
| ^~~
/usr/include/c++/13/bits/ranges_base.h:137:10: note: 'std::ranges::__cust_access::end'
137 | void end(const auto&) = delete;
| ^~~