結果
| 問題 | No.3737 Quiz Time |
| コンテスト | |
| ユーザー |
てんぷら
|
| 提出日時 | 2026-09-19 16:29:37 |
| 言語 | C++23 (gcc 15.3.0 + boost 1.92.0 + ACL) |
| 結果 |
WA
不安定
|
| 実行時間 | - |
| コード長 | 1,811 bytes |
| 記録 | |
| コンパイル時間 | 2,207 ms |
| コンパイル使用メモリ | 335,984 KB |
| 実行使用メモリ | 10,052 KB |
| 平均クエリ数 | 74.57 |
| 最終ジャッジ日時 | 2026-09-19 16:29:50 |
| 合計ジャッジ時間 | 5,610 ms |
|
ジャッジサーバーID (参考情報) |
judge4_0 / <nil> |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 25 WA * 25 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#ifdef TEMPURA
#else
#define debug(...) ((void)0)
#define msg(...) ((void)0)
#endif
#define rep(i, n) for(int i = 0; i < (int)(n); i++)
#define REP(i, m, n) for(int i = (int)(m); i < (int)(n); i++)
using ll = long long;
using ull = unsigned long long;
using i128 = __int128_t;
template <class T>
inline bool chmin(T &a, T b) {
if(a > b) {
a = b;
return true;
}
return false;
}
template <class T>
inline bool chmax(T &a, T b) {
if(a < b) {
a = b;
return true;
}
return false;
}
// #include <atcoder/modint>
// using mint = atcoder::modint998244353;
int n;
pair<int, int> query(int x, int y) {
cout << "? " << x + 1 << " " << y + 1 << endl;
int v;
cin >> v;
--v;
return {v / n, v % n};
}
int main() {
cin >> n;
auto [x0, y0] = query(0, 0);
auto [x1, y1] = query(0, 1);
if(x0 == x1) {
vector<int> r(n), c(n);
c[0] = x0;
r[0] = y0;
r[1] = y1;
c[n - 1] = n * (n - 1) / 2 - x0;
rep(i, n - 2) {
auto [x, y] = query(i + 1, i + 2);
c[i + 1] = x;
c[n - 1] -= x;
r[i + 2] = y;
}
cout << "!" << endl;
rep(i, n) {
rep(j, n) cout << r[i] * n + c[j] + 1 << " \n"[j + 1 == n];
}
} else if(y0 == y1) {
vector<int> r(n), c(n);
r[0] = y0;
c[0] = x0;
c[1] = x1;
r[n - 1] = n * (n - 1) / 2 - y0;
rep(i, n - 2) {
auto [x, y] = query(i + 1, i + 2);
r[i + 1] = y;
r[n - 1] -= y;
c[i + 2] = x;
}
cout << "!" << endl;
rep(i, n) {
rep(j, n) cout << r[i] + c[j] * n + 1 << " ";
cout<<endl;
}
}
}
てんぷら