#pragma GCC target("avx2")
#pragma GCC optimization("O3")
#pragma GCC optimization("unroll-loops")
#include<bits/stdc++.h>
#include "icc.h"
#define rc(x) return cout<<x<<endl,0
#define pb push_back
#define mkp make_pair
#define in insert
#define er erase
#define fd find
#define fr first
#define sc second
typedef long long ll;
typedef long double ld;
const ll INF=0x3f3f3f3f3f3f3f3f;
const ll llinf=(1LL<<61);
const int inf=(1<<30);
const int nmax=1e2+50;
const int mod=1e9+7;
using namespace std;
int n,i,sa,sb,aa[nmax],ab[nmax],j,edd,va[nmax],m;
vector<int>a[nmax],vc;
vector<vector<int> >cc;
bitset<nmax>viz;
int qry(int sa,int sb,int aa[],int ab[])
{
return query(sa,sb,aa,ab);
cout<<"?"<<endl;
for(int i=0;i<sa;i++)cout<<aa[i]<<" ";
cout<<endl;
for(int i=0;i<sb;i++)cout<<ab[i]<<" ";
cout<<endl;
int x;
cin>>x;
return x;
}
/*void setRoad(int x,int y)
{
cout<<"! "<<x<<" "<<y<<endl;
}*/
void dfs(int x)
{
viz[x]=1;
vc.pb(x);
for(int i=0;i<a[x].size();i++)
{
int y=a[x][i];
if(viz[y])continue;
dfs(y);
}
}
void dc(int l,int r,int ar[],int lb,int st[])
{
if(l==r)
{
vc.pb(ar[l]);
return;
}
int mid=(l+r)/2;
int xa=0;
for(int i=l;i<=mid;i++)va[xa++]=ar[i];
if(qry(xa,lb,va,st))dc(l,mid,ar,lb,st);
else dc(mid+1,r,ar,lb,st);
}
void run(int N)
{
srand(time(0));
n=N;
for(edd=1;edd<n;edd++)
{
viz.reset();
cc.clear();
for(i=1;i<=n;i++)
{
if(viz[i])continue;
vc.clear();
dfs(i);
cc.pb(vc);
}
m=((int)cc.size()-1)/2;
while(1)
{
random_shuffle(cc.begin(),cc.end());
sa=sb=0;
for(i=0;i<=m;i++)
{
for(j=0;j<cc[i].size();j++)aa[sa++]=cc[i][j];
}
for(;i<cc.size();i++)
{
for(j=0;j<cc[i].size();j++)ab[sb++]=cc[i][j];
}
if(qry(sa,sb,aa,ab))break;
}
vc.clear();
dc(0,sa-1,aa,sb,ab);
dc(0,sb-1,ab,sa,aa);
setRoad(vc[0],vc[1]);
a[vc[0]].pb(vc[1]);
a[vc[1]].pb(vc[0]);
}
}
/*int main()
{
//freopen("sol.in","r",stdin);
//freopen("sol.out","w",stdout);
//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0);
int z;
cin>>z;
run(z);
return 0;
}*/
Compilation message
icc.cpp:2:0: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
#pragma GCC optimization("O3")
icc.cpp:3:0: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
#pragma GCC optimization("unroll-loops")
icc.cpp: In function 'void dfs(int)':
icc.cpp:46:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=0;i<a[x].size();i++)
~^~~~~~~~~~~~
icc.cpp: In function 'void run(int)':
icc.cpp:88:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(j=0;j<cc[i].size();j++)aa[sa++]=cc[i][j];
~^~~~~~~~~~~~~
icc.cpp:90:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(;i<cc.size();i++)
~^~~~~~~~~~
icc.cpp:92:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(j=0;j<cc[i].size();j++)ab[sb++]=cc[i][j];
~^~~~~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
9 ms |
504 KB |
Ok! 100 queries used. |
2 |
Correct |
9 ms |
504 KB |
Ok! 101 queries used. |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
40 ms |
504 KB |
Ok! 518 queries used. |
2 |
Correct |
65 ms |
504 KB |
Ok! 827 queries used. |
3 |
Correct |
63 ms |
600 KB |
Ok! 791 queries used. |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
155 ms |
564 KB |
Ok! 1494 queries used. |
2 |
Correct |
223 ms |
568 KB |
Ok! 2100 queries used. |
3 |
Correct |
177 ms |
692 KB |
Ok! 1724 queries used. |
4 |
Correct |
177 ms |
508 KB |
Ok! 1746 queries used. |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
166 ms |
504 KB |
Ok! 1619 queries used. |
2 |
Correct |
174 ms |
696 KB |
Ok! 1664 queries used. |
3 |
Correct |
185 ms |
572 KB |
Ok! 1792 queries used. |
4 |
Correct |
160 ms |
596 KB |
Ok! 1557 queries used. |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
231 ms |
632 KB |
Too many queries! 1837 out of 1775 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
202 ms |
568 KB |
Too many queries! 1920 out of 1625 |
2 |
Halted |
0 ms |
0 KB |
- |