結果
| 問題 |
No.1034 テスターのふっぴーさん
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-04-24 23:50:27 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
MLE
|
| 実行時間 | - |
| コード長 | 971 bytes |
| コンパイル時間 | 1,522 ms |
| コンパイル使用メモリ | 170,772 KB |
| 実行使用メモリ | 818,304 KB |
| 最終ジャッジ日時 | 2024-10-15 03:57:06 |
| 合計ジャッジ時間 | 3,679 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 20 MLE * 1 -- * 9 |
ソースコード
#include <bits/stdc++.h>
#define rep(i,n) for (int i=0; i<(int)(n); i++)
#define REP(i,m,n) for(ll i=(ll)(m);i<(ll)(n);i++)
using namespace std;
using ll = long long;
using P = pair<int, int>;
bool dfs(int n, vector<vector<int>> &visited, int gx, int gy, int &t, int x=0, int y=0, int d=0) {
if (gx == x && gy == y) return true;
rep(i, 4) {
int nd = d % 4;
int nx=x, ny=y;
if (nd == 0) ny++;
else if (nd == 1) nx++;
else if (nd == 2) ny--;
else if (nd == 3) nx--;
if (0 <= nx && nx < n && 0 <= ny && ny < n) {
if (visited[nx][ny] == -1) {
visited[nx][ny] = 1;
if (dfs(n, visited, gx, gy, ++t, nx, ny, d)) return true;
else return false;
}
}
d++;
}
return false;
}
int main() {
int q; cin >> q;
rep(i,q) {
int n, x, y, t=0; cin >> n >> x >> y;
vector<vector<int>> visited(n,vector<int> (n, -1));
visited[0][0] = 1;
dfs(n,visited, x, y, t);
cout << t << endl;
}
}