CF #749 (div.2+div.1) D
作者:
ohhowo
,
2021-10-18 00:09:21
,
所有人可见
,
阅读 337
第一个自己写出的交互题,纪念一下
#include<bits/stdc++.h>
#define x first
#define y second
#define int long long
using namespace std;
typedef pair<int,int>PII;
int n;
bool st[110];
int querymax(int k)
{
cout<<'?'<<' ';
for(int i=1;i<n;i++)
cout<<1<<' ';
cout<<1+k<<endl;
cout<<endl;
int x;
cin>>x;
return x;
}
int querymin(int k)
{
cout<<'?'<<' ';
for(int i=1;i<n;i++)
cout<<1+k<<' ';
cout<<1<<endl;
cout<<endl;
int x;
cin>>x;
return x;
}
void print(vector<int> &v)
{
cout<<'!'<<' ';
for(int i=1;i<=n;i++)cout<<v[i]<<' ';
cout<<endl;
}
void solve()
{
cin>>n;
vector<int>a;
vector<int>b;
for(int i=1;i<n;i++)
{
int k=querymax(i);
if(k==0)break;
a.push_back(k);
}
for(int i=1;i<n;i++)
{
int k=querymin(i);
if(k==0)break;
b.push_back(k);
}
vector<int>v(n*2,0);
int z=b.size();
for(int i=0;i<b.size();i++)v[b[i]]=z-i;
for(int i=0;i<a.size();i++)v[a[i]]=z+2+i;
for(auto x:v)st[x]=true;
for(int i=1;i<=n;i++)if(!st[i])v[n]=i;
print(v);
}
signed main()
{
// ios::sync_with_stdio(false);
// cin.tie(nullptr);
int T=1;
// cin>>T;
while(T--)
solve();
return 0;
}
很棒hh