結果
| 問題 | No.1034 テスターのふっぴーさん |
| コンテスト | |
| ユーザー |
norioc
|
| 提出日時 | 2020-04-25 00:44:04 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 808 bytes |
| コンパイル時間 | 3,221 ms |
| コンパイル使用メモリ | 175,292 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-22 06:46:31 |
| 合計ジャッジ時間 | 3,099 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 |
ソースコード
import std;
long calc(long n, long row, long col) {
long k = min(row, col, n - 1 - row, n - 1 - col);
row -= k;
col -= k;
long step = n^^2 - (n - 2 * k)^^2;
n -= 2 * k;
if (row == 0) return step + col;
if (col == n - 1) return step + (n - 1) + row;
if (row == n - 1) return step + (n - 1) * 2 + (n - 1 - col);
if (col == 0) return step + (n - 1) * 3 + (n - 1 - row);
assert(false);
}
void main() {
int q; scan(q);
foreach (_; 0..q) {
int n, i, j; scan(n, i, j);
writeln(calc(n, i, j));
}
}
void scan(T...)(ref T a) {
string[] ss = readln.split;
foreach (i, t; T) a[i] = ss[i].to!t;
}
T read(T)() { return readln.chomp.to!T; }
T[] reads(T)() { return readln.split.to!(T[]); }
alias readint = read!int;
alias readints = reads!int;
norioc