結果
| 問題 |
No.2283 Prohibit Three Consecutive
|
| コンテスト | |
| ユーザー |
sapphire__15
|
| 提出日時 | 2023-04-28 21:42:21 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 41 ms / 2,000 ms |
| コード長 | 1,615 bytes |
| コンパイル時間 | 1,982 ms |
| コンパイル使用メモリ | 194,868 KB |
| 最終ジャッジ日時 | 2025-02-12 15:02:14 |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 13 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < int(n); i++)
#define per(i, n) for (int i = (n)-1; 0 <= i; i--)
#define rep2(i, l, r) for (int i = (l); i < int(r); i++)
#define per2(i, l, r) for (int i = (r)-1; int(l) <= i; i--)
#define MM << " " <<
#define pb push_back
#define eb emplace_back
#define all(x) begin(x), end(x)
#define rall(x) rbegin(x), rend(x)
// #define sz(x) (int)x.size()
template<typename T>
void print(const vector<T> &v) {
int n = v.size();
for (int i = 0; i < n; i++) cout << v[i] << (i == n - 1 ? '\n' : ' ');
if (v.empty()) cout << '\n';
}
template<class T>
using MaxHeap = priority_queue<T>;
template<class T>
using MinHeap = priority_queue<T, vector<T>, greater<T>>;
using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
template<typename T>
bool chmax(T &x, const T &y) {
return (x < y) ? (x = y, true) : false;
}
template<typename T>
bool chmin(T &x, const T &y) {
return (x > y) ? (x = y, true) : false;
}
bool solve() {
int n; cin >> n;
string s; cin >> s;
s += s;
s += s;
s += s;
rep(i, 4 * n - 2) {
if(s[i] != '?' && s[i] == s[i + 1]) {
if(s[i] == s[i + 2]) return false;
s[i + 2] = '0' + 1 - (s[i] - '0');
}
}
reverse(all(s));
rep(i, 4 * n - 2) {
if(s[i] != '?' && s[i] == s[i + 1]) {
if(s[i] == s[i + 2]) return false;
s[i + 2] = '0' + 1 - (s[i] - '0');
}
}
return true;
}
int main() {
int t; cin >> t;
rep(i, t) cout << ((solve()) ? "Yes" : "No") << endl;
}
sapphire__15