結果
問題 | No.202 1円玉投げ |
ユーザー |
![]() |
提出日時 | 2015-05-04 02:07:33 |
言語 | C++11(廃止可能性あり) (gcc 13.3.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; }