結果
問題 | No.1588 Connection |
ユーザー |
![]() |
提出日時 | 2021-07-08 23:18:47 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
(最新)
QLE
(最初)
|
実行時間 | - |
コード長 | 1,959 bytes |
コンパイル時間 | 2,059 ms |
コンパイル使用メモリ | 205,384 KB |
最終ジャッジ日時 | 2025-01-22 19:22:01 |
ジャッジサーバーID (参考情報) |
judge4 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | WA * 1 |
other | AC * 26 WA * 5 |
ソースコード
#include <bits/stdc++.h>using namespace std;using ll = long long;#define rep(i, n) for (int i=0; i<(int)(n); ++(i))#define rep3(i, m, n) for (int i=(m); (i)<(int)(n); ++(i))#define repr(i, n) for (int i=(int)(n)-1; (i)>=0; --(i))#define rep3r(i, m, n) for (int i=(int)(n)-1; (i)>=(int)(m); --(i))#define all(x) (x).begin(), (x).end()const int INF = (int)(1e9);int query(int a, int b) {++a; ++b;cout << a << ' ' << b << endl;cout.flush();string s;cin >> s;if (s == (string)("Black")) return 1;else if (s == (string)("White")) return 0;else return -1;}int main() {int n, m;cin >> n >> m;vector<vector<int>> b(n, vector<int>(n, -1));b[0][0] = b[n-1][n-1] = 1;queue<pair<int, int>> que;vector<vector<int>> dist(n, vector<int>(n, INF));int mcnt = 2, qcnt = 0;bool ok = false;que.emplace(0, 0);dist[0][0] = 0;while (!que.empty()) {auto p = que.front(); que.pop();int y = p.first, x = p.second, d = dist[y][x];const vector<int> dy = { -1, 0, 1, 0 }, dx = { 0, 1, 0, -1 };rep(i1, 4) {int ny = y + dy[i1], nx = x + dx[i1];if (ny<0 || ny>=n || nx<0 || nx>=n) continue;if (ny==n-1 && nx==n-1) {ok = true;break;}if (dist[ny][nx] <= d+1) continue;if (b[ny][nx] == -1) {if (mcnt >= m) break;if (qcnt >= 2999) break;int qres = query(ny, nx);++qcnt;if (qres == 1) ++mcnt;b[ny][nx] = qres;}if (b[ny][nx] == 0) continue;if (b[ny][nx] == 1) {que.emplace(ny, nx);dist[ny][nx] = d + 1;}}if (ok || mcnt>=m || qcnt>=2999) break;}if (ok) cout << "Yes" << endl;else cout << "No" << endl;return 0;}