結果
問題 | No.1265 Balloon Survival |
ユーザー |
|
提出日時 | 2020-10-24 01:35:20 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 296 ms / 2,000 ms |
コード長 | 1,478 bytes |
コンパイル時間 | 2,750 ms |
コンパイル使用メモリ | 207,644 KB |
最終ジャッジ日時 | 2025-01-15 14:50:31 |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 32 |
ソースコード
// g++ A.cpp -std=c++14 -I . && ./a.out#include <bits/stdc++.h>using namespace std;// #include <atcoder/all>// using namespace atcoder;// using mint = modint1000000007;// using mint = modint998244353;#define rep(i, n) for (int i = 0; i < (int)(n); i++)#define rep2(i, a, b) for (int i = a; i < (int)(b); i++)#define all(v) v.begin(), v.end()using ll = long long;const ll INF = 1e18;// 変数定義int N, M, Q, a, b, c, e, x, y, T, total, cnt, ans;ll pow(ll x, ll n){ll res = 1;while (n > 0){if (n & 1)res *= x; // n の最下位bitが 1 ならば x^(2^i) をかけるx *= x;n >>= 1; // n を1bit 左にずらす}return res;}int main(){ios::sync_with_stdio(false);cin.tie(nullptr);cin >> N;vector<ll> X(N), Y(N);rep(i, N){cin >> X[i] >> Y[i];}vector<vector<ll>> dists;rep(i, N){rep2(j, i + 1, N){dists.push_back({pow(abs(X[i] - X[j]), 2LL) + pow(abs(Y[i] - Y[j]), 2LL), i, j});}}sort(all(dists));vector<bool> check(N, false);for (auto dist : dists){// cout << dist[0] << ' ' << dist[1] << ' ' << dist[2] << '\n';// cout << ans << '\n';if (dist[1] == 0){if (check[dist[2]] == false){ans++;check[dist[2]] = true;}}else if (check[dist[1]] == false && check[dist[2]] == false){check[dist[1]] = true;check[dist[2]] = true;}}cout << ans << '\n';return 0;}