結果
| 問題 | No.202 1円玉投げ |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-02-19 22:10:01 |
| 言語 | D (dmd 2.112.0) |
| 結果 |
AC
|
| 実行時間 | 4,089 ms / 5,000 ms |
| コード長 | 754 bytes |
| 記録 | |
| コンパイル時間 | 2,004 ms |
| コンパイル使用メモリ | 194,092 KB |
| 実行使用メモリ | 18,272 KB |
| 最終ジャッジ日時 | 2026-02-19 22:11:01 |
| 合計ジャッジ時間 | 46,352 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 38 |
ソースコード
module main;
// https://kmjp.hatenablog.jp/entry/2015/05/04/0900 より
import std;
// C++のsetのようなもの
alias Unit = void[0];
enum unit = Unit.init;
void main()
{
// 入力
int N = readln.chomp.to!int;
auto X = new int[](N), Y = new int[](N);
// 答えの計算
int ans = 0;
Unit[int][int] S;
foreach (i; 0 .. N) {
readln.chomp.formattedRead("%d %d", X[i], Y[i]);
bool ok = true;
foreach (x; max(0, X[i] - 19) .. min(20_000, X[i] + 19) + 1) {
if (!ok) break;
int dy = sqrt(399.0 - (x - X[i]) * (x - X[i]) + 0.001).to!int;
foreach (y; max(0, Y[i] - dy) .. min(20_000, Y[i] + dy) + 1)
if (x in S && y in S[x]) ok = false;
}
if (ok) {
ans++;
S[X[i]][Y[i]] = unit;
}
}
// 答えの出力
writeln(ans);
}