提出 #49759468
ソースコード 拡げる
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tag_and_trait.hpp>
#include <ext/pb_ds/tree_policy.hpp>
namespace gt = __gnu_pbds;
#define IS_MULTITEST 0
using namespace std;
// #include "angel/math/modint.hpp"
#pragma region Macros
// clang-format off
using ll = long long; using uint = unsigned int; using ull = unsigned long long;
using i32 = int; using i64 = ll; using u32 = uint; using u64 = ull;
using i128 = __int128_t; using u128 = __uint128_t;
using Str = string;
template <class T> using Vec = vector<T>;
template <class T> using RevPriq = priority_queue<T, vector<T>, greater<T>>;
constexpr std::array<std::pair<int, int>, 4> dxy4 = {{{-1, 0}, {0, 1}, {1, 0}, {0, -1}}};
constexpr std::array<std::pair<int, int>, 8> dxy8 = {
{{-1, -1}, {-1, 0}, {-1, 1}, {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}}};
constexpr int inf32 = 1 << 30; constexpr ll inf64 = 1ll << 60;
constexpr char eoln = '\n';
#define L(i, l, r) for (int i = (l); i < (r); ++i)
#define R(i, l, r) for (int i = (r) - 1; i >= (l); --i)
#define ALL(x) (x).begin(), (x).end()
#define mem(a, x) memset((a), (x), sizeof(a))
#define sz(a) (int)((a).size())
#define fi first
#define se second
#define pb push_back
#define mp make_pair
// clang-format on
#pragma endregion
// Coding Space
int N;
Vec<int> L, R;
int Q;
Vec<int> P, X;
Vec<int> ans;
Vec<int> qs, ps;
struct UnionFind {
int n;
Vec<int> data;
Vec<gt::tree<pair<int, int>, gt::null_type, less<pair<int, int>>, gt::rb_tree_tag,
gt::tree_order_statistics_node_update>>
ds;
UnionFind(Vec<int> rs) : n(rs.size()), data(n, -1) {
ds.resize(n);
L(i, 0, n) ds[i].insert({rs[i], i});
}
int find(int v) {
if (data[v] < 0) return v;
else return data[v] = find(data[v]);
}
int size(int v) {
return -data[find(v)];
}
void merge(int a, int b) {
a = find(a);
b = find(b);
if (a == b) return;
if (size(a) < size(b)) swap(a, b);
data[a] += data[b];
data[b] = a;
for (auto &e : ds[b]) ds[a].insert(e);
}
};
UnionFind uft(Vec<int>(0, 0));
Vec<pair<int, pair<int, int>>> mgs;
void main_() {
cin >> N;
L.resize(N);
R.resize(N);
L(i, 0, N) {
cin >> L[i] >> R[i];
}
cin >> Q;
P.resize(Q);
X.resize(Q);
L(i, 0, Q) {
cin >> P[i] >> X[i];
--P[i];
}
qs.assign(Q, 0);
iota(ALL(qs), 0);
sort(ALL(qs), [&](int a, int b) { return X[a] > X[b]; });
ps.assign(N, 0);
iota(ALL(ps), 0);
sort(ALL(ps), [&](int a, int b) {
if (L[a] != L[b]) return L[a] < L[b];
else return R[a] < R[b];
});
uft = UnionFind(R);
int p = ps[0];
L(i, 1, N) {
if (R[p] < L[ps[i]]) {
p = ps[i];
continue;
}
int d = min(R[ps[i]] - L[ps[i]], (R[p] - L[p]) - (L[ps[i]] - L[p]));
mgs.pb({d, {p, ps[i]}});
if (R[p] < R[ps[i]]) p = ps[i];
}
sort(ALL(mgs), greater());
int pi = 0;
ans.resize(Q);
L(q, 0, Q) {
while (pi != size(mgs) and mgs[pi].first >= X[qs[q]]) {
uft.merge(mgs[pi].se.fi, mgs[pi].se.se);
++pi;
}
int root = uft.find(P[qs[q]]);
ans[qs[q]] = uft.size(P[qs[q]]);
ans[qs[q]] -= uft.ds[root].order_of_key({L[P[qs[q]]] + X[qs[q]], 0});
if (ans[qs[q]] == 0) ++ans[qs[q]];
}
for (auto e : ans) {
cout << e << '\n';
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
if constexpr (IS_MULTITEST == 0) {
main_();
} else {
// multitest (cf-style)
int T;
cin >> T;
while (T--) {
main_();
cout << flush;
}
}
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - 感染シミュレーション (Infection Simulation) |
| ユーザ | Cyanmond |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 100 |
| コード長 | 3951 Byte |
| 結果 | AC |
| 実行時間 | 191 ms |
| メモリ | 58168 KiB |
コンパイルエラー
Main.cpp:12: warning: ignoring ‘#pragma region Macros’ [-Wunknown-pragmas]
12 | #pragma region Macros
|
Main.cpp:35: warning: ignoring ‘#pragma endregion ’ [-Wunknown-pragmas]
35 | #pragma endregion
|
Main.cpp: In function ‘void main_()’:
Main.cpp:122:19: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, std::pair<int, int> >, std::allocator<std::pair<int, std::pair<int, int> > > >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
122 | while (pi != size(mgs) and mgs[pi].first >= X[qs[q]]) {
| ~~~^~~~~~~~~~~~
ジャッジ結果
| セット名 | Sample | Subtask1 | Subtask2 | Subtask3 | Subtask4 | Subtask5 | Subtask6 | Subtask7 | Subtask8 | Subtask9 | Subtask10 | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 2 / 2 | 3 / 3 | 6 / 6 | 10 / 10 | 11 / 11 | 16 / 16 | 13 / 13 | 14 / 14 | 15 / 15 | 10 / 10 | ||||||||||||||||||||||
| 結果 |
|
|
|
|
|
|
|
|
|
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, sample-05.txt, sample-06.txt, sample-07.txt |
| Subtask1 | 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, sample-03.txt |
| Subtask2 | 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, sample-02.txt, sample-03.txt |
| Subtask3 | 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 03-01.txt, 03-02.txt, sample-02.txt, sample-03.txt |
| Subtask4 | 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 04-10.txt, 04-11.txt, 04-12.txt, sample-01.txt, sample-02.txt, sample-04.txt, sample-05.txt, sample-06.txt, sample-07.txt |
| Subtask5 | 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 04-10.txt, 04-11.txt, 04-12.txt, 05-01.txt, 05-02.txt, 05-03.txt, 05-04.txt, 05-05.txt, 05-06.txt, 05-07.txt, 05-08.txt, 05-09.txt, 05-10.txt, 05-11.txt, 05-12.txt, 05-13.txt, 05-14.txt, 05-15.txt, 05-16.txt, 05-17.txt, 05-18.txt, 05-19.txt, 05-20.txt, 01-01.txt, 01-02.txt, 02-01.txt, 02-02.txt, sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, sample-05.txt, sample-06.txt, sample-07.txt |
| Subtask6 | 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 04-10.txt, 04-11.txt, 04-12.txt, 05-01.txt, 05-02.txt, 05-03.txt, 05-04.txt, 05-05.txt, 05-06.txt, 05-07.txt, 05-08.txt, 05-09.txt, 05-10.txt, 05-11.txt, 05-12.txt, 05-13.txt, 05-14.txt, 05-15.txt, 05-16.txt, 05-17.txt, 05-18.txt, 05-19.txt, 05-20.txt, 06-01.txt, 06-02.txt, 06-03.txt, 06-04.txt, 06-05.txt, 06-06.txt, 06-07.txt, 06-08.txt, 06-09.txt, 06-10.txt, 06-11.txt, 06-12.txt, 06-13.txt, 06-14.txt, 06-15.txt, 06-16.txt, 06-17.txt, 06-18.txt, sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, sample-05.txt, sample-06.txt, sample-07.txt |
| Subtask7 | 07-01.txt, 07-02.txt, 07-03.txt, 07-04.txt, 07-05.txt, 07-06.txt, 07-07.txt, 07-08.txt, 07-09.txt, 07-10.txt, sample-05.txt |
| Subtask8 | 07-01.txt, 07-02.txt, 07-03.txt, 07-04.txt, 07-05.txt, 07-06.txt, 07-07.txt, 07-08.txt, 07-09.txt, 07-10.txt, 08-01.txt, 08-02.txt, 08-03.txt, 08-04.txt, 08-05.txt, 08-06.txt, 08-07.txt, 08-08.txt, 08-09.txt, sample-01.txt, sample-03.txt, sample-05.txt, sample-06.txt |
| Subtask9 | 09-01.txt, 09-02.txt, 09-03.txt, 09-04.txt, 09-05.txt, 09-06.txt, 09-07.txt, 09-08.txt, 09-09.txt, 09-10.txt, 09-11.txt, 09-12.txt, 09-13.txt, 09-14.txt, 09-15.txt, 09-16.txt, 05-15.txt, 05-16.txt, 06-16.txt, sample-01.txt, sample-04.txt, sample-05.txt, sample-07.txt |
| Subtask10 | 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 03-01.txt, 03-02.txt, 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 04-10.txt, 04-11.txt, 04-12.txt, 05-01.txt, 05-02.txt, 05-03.txt, 05-04.txt, 05-05.txt, 05-06.txt, 05-07.txt, 05-08.txt, 05-09.txt, 05-10.txt, 05-11.txt, 05-12.txt, 05-13.txt, 05-14.txt, 05-15.txt, 05-16.txt, 05-17.txt, 05-18.txt, 05-19.txt, 05-20.txt, 06-01.txt, 06-02.txt, 06-03.txt, 06-04.txt, 06-05.txt, 06-06.txt, 06-07.txt, 06-08.txt, 06-09.txt, 06-10.txt, 06-11.txt, 06-12.txt, 06-13.txt, 06-14.txt, 06-15.txt, 06-16.txt, 06-17.txt, 06-18.txt, 07-01.txt, 07-02.txt, 07-03.txt, 07-04.txt, 07-05.txt, 07-06.txt, 07-07.txt, 07-08.txt, 07-09.txt, 07-10.txt, 08-01.txt, 08-02.txt, 08-03.txt, 08-04.txt, 08-05.txt, 08-06.txt, 08-07.txt, 08-08.txt, 08-09.txt, 09-01.txt, 09-02.txt, 09-03.txt, 09-04.txt, 09-05.txt, 09-06.txt, 09-07.txt, 09-08.txt, 09-09.txt, 09-10.txt, 09-11.txt, 09-12.txt, 09-13.txt, 09-14.txt, 09-15.txt, 09-16.txt, 10-01.txt, 10-02.txt, 10-03.txt, 10-04.txt, 10-05.txt, 10-06.txt, 10-07.txt, 10-08.txt, 10-09.txt, 10-10.txt, 10-11.txt, 10-12.txt, 10-13.txt, 10-14.txt, sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, sample-05.txt, sample-06.txt, sample-07.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 01-01.txt | AC | 1 ms | 3592 KiB |
| 01-02.txt | AC | 1 ms | 3572 KiB |
| 01-03.txt | AC | 56 ms | 27668 KiB |
| 01-04.txt | AC | 56 ms | 27680 KiB |
| 02-01.txt | AC | 1 ms | 3448 KiB |
| 02-02.txt | AC | 1 ms | 3588 KiB |
| 02-03.txt | AC | 67 ms | 27628 KiB |
| 02-04.txt | AC | 67 ms | 27620 KiB |
| 03-01.txt | AC | 100 ms | 29316 KiB |
| 03-02.txt | AC | 101 ms | 29396 KiB |
| 04-01.txt | AC | 1 ms | 3464 KiB |
| 04-02.txt | AC | 1 ms | 3460 KiB |
| 04-03.txt | AC | 1 ms | 3364 KiB |
| 04-04.txt | AC | 1 ms | 3616 KiB |
| 04-05.txt | AC | 1 ms | 3764 KiB |
| 04-06.txt | AC | 1 ms | 3636 KiB |
| 04-07.txt | AC | 1 ms | 3764 KiB |
| 04-08.txt | AC | 1 ms | 3600 KiB |
| 04-09.txt | AC | 1 ms | 3620 KiB |
| 04-10.txt | AC | 1 ms | 3592 KiB |
| 04-11.txt | AC | 1 ms | 3512 KiB |
| 04-12.txt | AC | 1 ms | 3492 KiB |
| 05-01.txt | AC | 1 ms | 3484 KiB |
| 05-02.txt | AC | 1 ms | 3588 KiB |
| 05-03.txt | AC | 1 ms | 3620 KiB |
| 05-04.txt | AC | 1 ms | 3504 KiB |
| 05-05.txt | AC | 1 ms | 3556 KiB |
| 05-06.txt | AC | 1 ms | 3616 KiB |
| 05-07.txt | AC | 1 ms | 3652 KiB |
| 05-08.txt | AC | 1 ms | 3628 KiB |
| 05-09.txt | AC | 1 ms | 3776 KiB |
| 05-10.txt | AC | 1 ms | 3576 KiB |
| 05-11.txt | AC | 1 ms | 3664 KiB |
| 05-12.txt | AC | 1 ms | 3560 KiB |
| 05-13.txt | AC | 1 ms | 3696 KiB |
| 05-14.txt | AC | 1 ms | 3628 KiB |
| 05-15.txt | AC | 1 ms | 3528 KiB |
| 05-16.txt | AC | 1 ms | 3692 KiB |
| 05-17.txt | AC | 1 ms | 3500 KiB |
| 05-18.txt | AC | 1 ms | 3644 KiB |
| 05-19.txt | AC | 1 ms | 3572 KiB |
| 05-20.txt | AC | 1 ms | 3684 KiB |
| 06-01.txt | AC | 94 ms | 35524 KiB |
| 06-02.txt | AC | 92 ms | 31064 KiB |
| 06-03.txt | AC | 83 ms | 28456 KiB |
| 06-04.txt | AC | 84 ms | 27804 KiB |
| 06-05.txt | AC | 87 ms | 27084 KiB |
| 06-06.txt | AC | 82 ms | 27356 KiB |
| 06-07.txt | AC | 84 ms | 27664 KiB |
| 06-08.txt | AC | 53 ms | 26772 KiB |
| 06-09.txt | AC | 56 ms | 27152 KiB |
| 06-10.txt | AC | 51 ms | 31652 KiB |
| 06-11.txt | AC | 55 ms | 32940 KiB |
| 06-12.txt | AC | 33 ms | 24332 KiB |
| 06-13.txt | AC | 73 ms | 26968 KiB |
| 06-14.txt | AC | 60 ms | 27608 KiB |
| 06-15.txt | AC | 65 ms | 26044 KiB |
| 06-16.txt | AC | 61 ms | 27252 KiB |
| 06-17.txt | AC | 96 ms | 30248 KiB |
| 06-18.txt | AC | 73 ms | 26104 KiB |
| 07-01.txt | AC | 95 ms | 34608 KiB |
| 07-02.txt | AC | 189 ms | 58168 KiB |
| 07-03.txt | AC | 115 ms | 39920 KiB |
| 07-04.txt | AC | 85 ms | 29120 KiB |
| 07-05.txt | AC | 85 ms | 29372 KiB |
| 07-06.txt | AC | 84 ms | 34148 KiB |
| 07-07.txt | AC | 86 ms | 34608 KiB |
| 07-08.txt | AC | 78 ms | 29112 KiB |
| 07-09.txt | AC | 74 ms | 29384 KiB |
| 07-10.txt | AC | 61 ms | 28068 KiB |
| 08-01.txt | AC | 152 ms | 40856 KiB |
| 08-02.txt | AC | 128 ms | 33088 KiB |
| 08-03.txt | AC | 120 ms | 30380 KiB |
| 08-04.txt | AC | 118 ms | 29848 KiB |
| 08-05.txt | AC | 121 ms | 29576 KiB |
| 08-06.txt | AC | 127 ms | 29332 KiB |
| 08-07.txt | AC | 114 ms | 29328 KiB |
| 08-08.txt | AC | 110 ms | 29396 KiB |
| 08-09.txt | AC | 105 ms | 29400 KiB |
| 09-01.txt | AC | 155 ms | 42564 KiB |
| 09-02.txt | AC | 191 ms | 44424 KiB |
| 09-03.txt | AC | 166 ms | 36840 KiB |
| 09-04.txt | AC | 152 ms | 33276 KiB |
| 09-05.txt | AC | 150 ms | 31428 KiB |
| 09-06.txt | AC | 155 ms | 31696 KiB |
| 09-07.txt | AC | 138 ms | 29924 KiB |
| 09-08.txt | AC | 139 ms | 29808 KiB |
| 09-09.txt | AC | 140 ms | 29748 KiB |
| 09-10.txt | AC | 133 ms | 29580 KiB |
| 09-11.txt | AC | 107 ms | 29328 KiB |
| 09-12.txt | AC | 105 ms | 29316 KiB |
| 09-13.txt | AC | 103 ms | 34596 KiB |
| 09-14.txt | AC | 102 ms | 34612 KiB |
| 09-15.txt | AC | 121 ms | 29392 KiB |
| 09-16.txt | AC | 120 ms | 29324 KiB |
| 10-01.txt | AC | 107 ms | 31708 KiB |
| 10-02.txt | AC | 141 ms | 32284 KiB |
| 10-03.txt | AC | 134 ms | 29580 KiB |
| 10-04.txt | AC | 133 ms | 29336 KiB |
| 10-05.txt | AC | 110 ms | 34400 KiB |
| 10-06.txt | AC | 188 ms | 54888 KiB |
| 10-07.txt | AC | 127 ms | 40160 KiB |
| 10-08.txt | AC | 109 ms | 29060 KiB |
| 10-09.txt | AC | 107 ms | 29484 KiB |
| 10-10.txt | AC | 102 ms | 34088 KiB |
| 10-11.txt | AC | 105 ms | 34600 KiB |
| 10-12.txt | AC | 104 ms | 29056 KiB |
| 10-13.txt | AC | 97 ms | 29328 KiB |
| 10-14.txt | AC | 70 ms | 28156 KiB |
| sample-01.txt | AC | 1 ms | 3468 KiB |
| sample-02.txt | AC | 1 ms | 3480 KiB |
| sample-03.txt | AC | 1 ms | 3544 KiB |
| sample-04.txt | AC | 1 ms | 3424 KiB |
| sample-05.txt | AC | 1 ms | 3468 KiB |
| sample-06.txt | AC | 1 ms | 3512 KiB |
| sample-07.txt | AC | 1 ms | 3456 KiB |