結果
問題 |
No.2535 多重同値
|
ユーザー |
![]() |
提出日時 | 2023-11-10 21:31:59 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 23 ms / 2,000 ms |
コード長 | 1,067 bytes |
コンパイル時間 | 3,315 ms |
コンパイル使用メモリ | 249,816 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-26 01:10:48 |
合計ジャッジ時間 | 4,174 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
ソースコード
#include<bits/stdc++.h> using namespace std; using ll = long long; using dat = array<array<int,2>,2>; int main(){ int n; cin>>n; vector<int> p(n); for(int i = 0;i<n;i++){ string now; cin>>now; if(now=="Yes") p[i] = 1; else p[i] = 0; } vector<dat> now(n); for(int i = 0;i<n;i++){ dat use = {}; if(p[i]==1){ use[0][0] = 1; use[1][1] = 1; }else{ use[0][1] = 1; use[1][0] = 1; } now[i] = use; } dat e= {}; e[0][0] = e[1][1] = 1; for(int i = 0;i<n;i++){ if(p[i]==0){ if(e[0][1]) cout<<"Yes\n"; else cout<<"No\n"; }else{ if(e[0][0]) cout<<"Yes\n"; else cout<<"No\n"; } dat res = {}; for(int j = 0;j<2;j++){ for(int k = 0;k<2;k++){ for(int l = 0;l<2;l++){ res[j][k] |= now[i][j][l] & e[l][k]; } } } e = res; } }