結果
| 問題 | No.202 1円玉投げ |
| コンテスト | |
| ユーザー |
alpha_virginis
|
| 提出日時 | 2015-05-04 02:07:33 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 76 ms / 5,000 ms |
| コード長 | 920 bytes |
| 記録 | |
| コンパイル時間 | 2,566 ms |
| コンパイル使用メモリ | 158,296 KB |
| 実行使用メモリ | 20,736 KB |
| 最終ジャッジ日時 | 2024-12-22 08:11:45 |
| 合計ジャッジ時間 | 4,141 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 38 |
ソースコード
#include <bits/stdc++.h>
int main() {
int N;
int x, y;
int x0, x1, y0, y1;
int* p[2100];
int ans = 0;
int temp;
for(int i = 0; i < 2100; ++i) {
p[i] = new int[2100];
}
for(int i = 0; i < 2100; ++i) {
for(int j = 0; j < 2100; ++j) {
p[i][j] = -1;
}
}
std::cin >> N;
for(int i = 0; i < N; ++i) {
std::cin >> x >> y;
x += 20;
y += 20;
for(int j = -2; j <= 2; ++j) {
for(int k = -2; k <= 2; ++k) {
temp = p[x/10 + j][y/10 + k];
if( p[x/10 + j][y/10 + k] != -1 ) {
x0 = temp >> 16;
y0 = temp & 0xffff;
x1 = x;
y1 = y;
temp = (x0 - x1) * (x0 - x1) + (y0 - y1) * (y0 - y1);
if( temp < 400 ) {
goto label_1;
}
}
}
}
p[x/10][y/10] = (x << 16) | y;
ans += 1;
label_1:
ans = ans;
}
std::cout << ans << std::endl;
for(int i = 0; i < 2100; ++i) {
delete [] p[i];
}
return 0;
}
alpha_virginis