結果
問題 |
No.1959 Prefix MinMax
|
ユーザー |
![]() |
提出日時 | 2022-05-14 17:39:13 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,300 bytes |
コンパイル時間 | 2,131 ms |
コンパイル使用メモリ | 196,544 KB |
最終ジャッジ日時 | 2025-01-29 08:06:05 |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | RE * 1 |
other | WA * 24 RE * 7 |
ソースコード
#include<bits/stdc++.h> using namespace std; int main(int argc, char* argv[]){ ifstream input(argv[1]); int T; input >> T; for(int t = 0; t < T; t++){ int N; input >> N; vector<int>P(N + 1); for(int i = 1; i <= N; i++){ input >> P[i]; } int query_num = 0; cout << N << endl; while(true){ char type; assert(cin >> type); assert(type == '?' || type == '!'); if(type == '?'){ query_num++; assert(query_num <= 10); vector<int>A(N); for(int i = 1; i <= N - 1; i++){ assert(cin >> A[i]); assert(A[i] == 0 || A[i] == 1); } vector<int>B(N + 1); B[1] = P[1]; for(int i = 1; i <= N - 1; i++){ if(A[i] == 0){ B[i + 1] = min(B[i], P[i + 1]); } else{ B[i + 1] = max(B[i], P[i + 1]); } } for(int i = 1; i <= N; i++){ cout << B[i]; if(i < N){ cout << " "; } else{ cout << endl; } } } if(type == '!'){ vector<int>Q(N + 1); for(int i = 1; i <= N; i++){ assert(cin >> Q[i]); assert(P[i] == Q[i]); } break; } } } return 0; }