xxxxxxxxxx
/*
* @uni_kakurenbo
* https://github.com/uni-kakurenbo/competitive-programming-workspace
*
* CC0 1.0 http://creativecommons.org/publicdomain/zero/1.0/deed.ja
*/
/* #language C++ GCC */
/* #region tmplate */
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
template<class T1, class T2> inline auto mod(T1 x, T2 r) { return (x%r+r)%r; }
template<class T> inline bool chmax(T &a, T b) { return (a<b ? a=b, true : false); }
template<class T> inline bool chmin(T &a, T b) { return (a>b ? a=b, true : false); }
/* #endregion */
using namespace atcoder;
using Bomb = pair<int,int>;
signed main() {
int n, r; cin >> n >> r;
vector<Bomb> bombs(n);
REP(i, n) cin >> bombs[i].F$ >> bombs[i].S$;
string s; cin >> s;
debug(n, r);
debug(bombs, s);
dsu uf(n);
FOR(i, 0, n-2) FOR(j, i+1, n-1) {
auto [xi, yi] = bombs[i];
auto [xj, yj] = bombs[j];
int dx = abs(xi - xj), dy = abs(yi - yj);
if(1LL*dx*dx + 1LL*dy*dy <= 1LL*r*r) uf.merge(i, j);
}
debug(uf.groups());
vector<int> already(n);
ll ans = 0;
REP(i, n) {
if(s[i] == 'N' or already[uf.leader(i)]) continue;
debug(i, uf.size(i));
++already[uf.leader(i)];
ans += uf.size(i);
}
cout << ans << "\n";
return 0;
}
提出日時 | |
ユーザー | ![]() |
言語 | C++ (GCC 9.3.0) |
結果 | AC |
実行時間 | 14 ms |
メモリ | 188356 kb |
テストケース名 | 結果 | 実行時間 | メモリ |
---|---|---|---|
sample-01 | AC | 3 ms | 188356 kb |
sample-02 | AC | 3 ms | 188356 kb |
sample-03 | AC | 3 ms | 188356 kb |
testcase-01 | AC | 3 ms | 188356 kb |
testcase-02 | AC | 3 ms | 188356 kb |
testcase-03 | AC | 3 ms | 188356 kb |
testcase-04 | AC | 3 ms | 188356 kb |
testcase-05 | AC | 3 ms | 188356 kb |
testcase-06 | AC | 3 ms | 188356 kb |
testcase-07 | AC | 3 ms | 188356 kb |
testcase-08 | AC | 3 ms | 188356 kb |
testcase-09 | AC | 3 ms | 188356 kb |
testcase-10 | AC | 3 ms | 188356 kb |
testcase-11 | AC | 3 ms | 188356 kb |
testcase-12 | AC | 3 ms | 188356 kb |
testcase-13 | AC | 3 ms | 188356 kb |
testcase-14 | AC | 4 ms | 188356 kb |
testcase-15 | AC | 4 ms | 188356 kb |
testcase-16 | AC | 4 ms | 188356 kb |
testcase-17 | AC | 4 ms | 188356 kb |
testcase-18 | AC | 4 ms | 188356 kb |
testcase-19 | AC | 4 ms | 188356 kb |
testcase-20 | AC | 5 ms | 188356 kb |
testcase-21 | AC | 4 ms | 188356 kb |
testcase-22 | AC | 6 ms | 188356 kb |
testcase-23 | AC | 4 ms | 188356 kb |
testcase-24 | AC | 7 ms | 188356 kb |
testcase-25 | AC | 7 ms | 188356 kb |
testcase-26 | AC | 7 ms | 188356 kb |
testcase-27 | AC | 7 ms | 188356 kb |
testcase-28 | AC | 7 ms | 188356 kb |
testcase-29 | AC | 7 ms | 188356 kb |
testcase-30 | AC | 7 ms | 188356 kb |
testcase-31 | AC | 7 ms | 188356 kb |
testcase-32 | AC | 7 ms | 188356 kb |
testcase-33 | AC | 7 ms | 188356 kb |
testcase-34 | AC | 12 ms | 188356 kb |
testcase-35 | AC | 12 ms | 188356 kb |
testcase-36 | AC | 12 ms | 188356 kb |
testcase-37 | AC | 12 ms | 188356 kb |
testcase-38 | AC | 12 ms | 188356 kb |
testcase-39 | AC | 12 ms | 188356 kb |
testcase-40 | AC | 12 ms | 188356 kb |
testcase-41 | AC | 12 ms | 188356 kb |
testcase-42 | AC | 14 ms | 188356 kb |
testcase-43 | AC | 12 ms | 188356 kb |
testcase-44 | AC | 12 ms | 188356 kb |
testcase-45 | AC | 12 ms | 188356 kb |
testcase-46 | AC | 12 ms | 188356 kb |
testcase-47 | AC | 12 ms | 188356 kb |
testcase-48 | AC | 12 ms | 188356 kb |
testcase-49 | AC | 12 ms | 188356 kb |
testcase-50 | AC | 7 ms | 188356 kb |
testcase-51 | AC | 4 ms | 188356 kb |
testcase-52 | AC | 3 ms | 188356 kb |
testcase-53 | AC | 5 ms | 188356 kb |
testcase-54 | AC | 10 ms | 188356 kb |
testcase-55 | AC | 11 ms | 188356 kb |
testcase-56 | AC | 4 ms | 188356 kb |
testcase-57 | AC | 8 ms | 188356 kb |
testcase-58 | AC | 10 ms | 188356 kb |
testcase-59 | AC | 8 ms | 188356 kb |
testcase-60 | AC | 5 ms | 188356 kb |
testcase-61 | AC | 11 ms | 188356 kb |
testcase-62 | AC | 3 ms | 188356 kb |
testcase-63 | AC | 5 ms | 188356 kb |