結果
問題 | 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;}}