結果
問題 | No.202 1円玉投げ |
ユーザー |
|
提出日時 | 2020-05-22 02:27:52 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,117 bytes |
コンパイル時間 | 2,046 ms |
コンパイル使用メモリ | 175,816 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-12-22 11:57:36 |
合計ジャッジ時間 | 9,168 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 WA * 2 RE * 20 |
ソースコード
#include <bits/stdc++.h>using namespace std;using ll = long long;constexpr char newl = '\n';int main() {cin.tie(nullptr);ios::sync_with_stdio(false);int n;cin >> n;vector<int> x(n), y(n);for (int i = 0; i < n; i++) {cin >> x[i] >> y[i];}vector<int> ids(n);iota(ids.begin(), ids.end(), 0);sort(ids.begin(), ids.end(), [&](int i1, int i2){return x[i1] < x[i2];});deque<int> dq;for (int i : ids) {for (int jj = 0; ;) {if (jj >= dq.size()) {dq.push_front(i);break;}int j = dq[jj];int dx = x[i] - x[j];if (abs(dx) >= 20) {dq.push_front(i);break;}int dy = y[i] - y[j];int r2 = dx * dx + dy * dy;if (r2 >= 400) {++jj;continue;}if (i > j) break;swap(dq[j], dq.back());dq.pop_back();}}cout << dq.size() << newl;return 0;}