题解:P17854 [LBA-OI R6 B] 凌云沐雨
询问次数最大为
假设当前我们已经确定了
现在要确定第
最终输出需要把
::::success[Code]
#include<bits/stdc++.h>
using namespace std;
/*=====================*/
using ll=long long;
#define endl '\n'
/*=====================*/
const int N=1e3+10;
/*=====================*/
int p[N],ans[N];
/*=====================*/
void Solve(void) {
int n,t; cin>>n>>t;
p[1]=1;
for(int i=2;i<=n;i++) {
cout<<"? "<<i<<' ';
for(int j=1;j<i;j++) cout<<p[j]<<' ';
cout<<i<<'\n';
cout.flush();
int x; cin>>x;
for(int j=i;j>x;j--) p[j]=p[j-1];
p[x]=i;
}
for(int i=1;i<=n;i++) ans[p[i]]=i;
cout<<"! ";
for(int i=1;i<=n;i++) cout<<ans[i]<<' ';
}
/*=====================*/
signed main() {
#ifndef ONLINE_JUDGE
// freopen("../IN.txt","r",stdin);
#endif
// freopen("filename.in","r",stdin);
// freopen("filename.out","w",stdout);
cin.tie(0)->sync_with_stdio(0);
// int T; cin>>T; while(T--)
Solve();
return 0;
}
::::