結果
問題 | No.2124 Guess the Permutation |
ユーザー | 乾麺 |
提出日時 | 2024-04-03 21:12:11 |
言語 | C++23 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 57 ms / 2,000 ms |
コード長 | 976 bytes |
コンパイル時間 | 4,170 ms |
コンパイル使用メモリ | 269,804 KB |
実行使用メモリ | 25,220 KB |
平均クエリ数 | 374.60 |
最終ジャッジ日時 | 2024-10-01 00:06:00 |
合計ジャッジ時間 | 5,112 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 26 ms
24,812 KB |
testcase_01 | AC | 24 ms
24,580 KB |
testcase_02 | AC | 24 ms
24,964 KB |
testcase_03 | AC | 24 ms
24,580 KB |
testcase_04 | AC | 25 ms
25,220 KB |
testcase_05 | AC | 27 ms
24,964 KB |
testcase_06 | AC | 43 ms
25,220 KB |
testcase_07 | AC | 57 ms
25,220 KB |
testcase_08 | AC | 57 ms
24,580 KB |
testcase_09 | AC | 56 ms
24,836 KB |
ソースコード
#define _GLIBCXX_DEBUG #include <bits/stdc++.h> using namespace std; typedef long long ll; #define rep(i,a,b) for(int i=a;i<b;i++) using vi = vector<int>; // intの1次元の型に vi という別名をつける using vvi = vector<vi>; // intの2次元の型に vvi という別名をつける using si =vector<char>; using ssi =vector<si>; //using mint = modint998244353; const long long INF = 1e18; //bit全探索 rep(i,0,1<<(n-1)){rep(j,0,n-1)if(I&(1<<j))} //int a = s[0] - ‘0’;文字列から数字 //int a=atoi(s.c_str()); //“ABCDEFGHIJKLMNOPQRSTUVWXYZ" //ll l-=-1,r=2e9; //while (r - l > 1) { // ll m = (l + r) / 2; // (m * (m + 1) / 2 <= n + 1 ? l : r) = m; // } int main(){ int n; cin>>n;vi vec(n); int sum=n*(n+1)/2; cout<<"? "<<1<<" "<<n-1<<endl; int b; cin>>b; vec[n-1]=sum-b; rep(i,0,n-2){ cout<<"? "<<i+2<<" "<<n<<endl; int a; cin>>a; vec[i]=sum-a; sum=a; } cout<<"!"; rep(i,0,n){ if(i==n-2)cout<<" "<<sum-vec[n-1]; else cout<<" "<<vec[i]; } }