提出 #65380696
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
template <typename T>
using vc = vector<T>;
#define FOR1(a) for (ll _ = 0; _ < ll(a); ++_)
#define FOR2(i, a) for (ll i = 0; i < ll(a); ++i)
#define FOR3(i, a, b) for (ll i = a; i < ll(b); ++i)
#define FOR1_R(a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR2_R(i, a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR3_R(i, a, b) for (ll i = (b)-1; i >= ll(a); --i)
#define overload3(a, b, c, d, ...) d
#define FOR(...) overload3(__VA_ARGS__, FOR3, FOR2, FOR1)(__VA_ARGS__)
#define FOR_R(...) overload3(__VA_ARGS__, FOR3_R, FOR2_R, FOR1_R)(__VA_ARGS__)
// solution 1. SegTree.
void solve() {
ll N = 1 << 22;
vc<int> dat(N + N);
vc<bool> exist(N);
auto upd = [&](int i) -> void { dat[i] = dat[2 * i] + dat[2 * i + 1]; };
auto rm_single = [&](int i) -> void {
exist[i] = 0;
i += N;
dat[i] = 0;
while (i > 1) i /= 2, upd(i);
};
auto rm_mul = [&](int a) -> void {
if (a >= N || !exist[a]) return;
for (int i = a; i < N; i += a) {
if (exist[i]) rm_single(i);
}
};
auto find = [&](int k) -> int {
// (1+k)-th element. (配列の [k]と同じ)
auto rec = [&](auto& rec, int idx, int l, int r) -> int {
if (r - l == 1) return l;
int m = (l + r) / 2;
int a = 2 * idx + 0, b = 2 * idx + 1;
if (k < dat[a]) return rec(rec, a, l, m);
k -= dat[a];
return rec(rec, b, m, r);
};
return rec(rec, 1, 0, N);
};
// initialize
FOR(i, 1, N) dat[N + i] = 1, exist[i] = 1;
FOR_R(i, 1, N) upd(i);
ll Q;
cin >> Q;
FOR(Q) {
int a, b;
cin >> a >> b;
rm_mul(a);
int ans = find(b - 1);
cout << ans << "\n";
}
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
solve();
}
提出情報
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
600 / 600 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
01_sample_01.txt |
| All |
01_sample_01.txt, 02_small_AB_01.txt, 02_small_AB_02.txt, 02_small_AB_03.txt, 02_small_AB_04.txt, 02_small_AB_05.txt, 03_rand_1_01.txt, 03_rand_1_02.txt, 03_rand_1_03.txt, 03_rand_1_04.txt, 03_rand_1_05.txt, 04_rand_2_01.txt, 04_rand_2_02.txt, 04_rand_2_03.txt, 04_rand_2_04.txt, 04_rand_2_05.txt, 05_rand_3_01.txt, 05_rand_3_02.txt, 05_rand_3_03.txt, 05_rand_3_04.txt, 05_rand_3_05.txt, 06_rand_4_01.txt, 06_rand_4_02.txt, 06_rand_4_03.txt, 06_rand_4_04.txt, 06_rand_4_05.txt, 06_rand_4_06.txt, 06_rand_4_07.txt, 06_rand_4_08.txt, 06_rand_4_09.txt, 06_rand_4_10.txt, 06_rand_4_11.txt, 06_rand_4_12.txt, 06_rand_4_13.txt, 06_rand_4_14.txt, 06_rand_4_15.txt, 06_rand_4_16.txt, 07_max_ans_01.txt, 07_max_ans_02.txt, 07_max_ans_03.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 01_sample_01.txt |
AC |
67 ms |
36356 KiB |
| 02_small_AB_01.txt |
AC |
188 ms |
36248 KiB |
| 02_small_AB_02.txt |
AC |
189 ms |
36216 KiB |
| 02_small_AB_03.txt |
AC |
172 ms |
36184 KiB |
| 02_small_AB_04.txt |
AC |
179 ms |
36284 KiB |
| 02_small_AB_05.txt |
AC |
187 ms |
36200 KiB |
| 03_rand_1_01.txt |
AC |
49 ms |
36208 KiB |
| 03_rand_1_02.txt |
AC |
50 ms |
36356 KiB |
| 03_rand_1_03.txt |
AC |
49 ms |
36212 KiB |
| 03_rand_1_04.txt |
AC |
49 ms |
36252 KiB |
| 03_rand_1_05.txt |
AC |
49 ms |
36248 KiB |
| 04_rand_2_01.txt |
AC |
167 ms |
36296 KiB |
| 04_rand_2_02.txt |
AC |
169 ms |
36192 KiB |
| 04_rand_2_03.txt |
AC |
166 ms |
36256 KiB |
| 04_rand_2_04.txt |
AC |
168 ms |
36256 KiB |
| 04_rand_2_05.txt |
AC |
182 ms |
36280 KiB |
| 05_rand_3_01.txt |
AC |
134 ms |
36216 KiB |
| 05_rand_3_02.txt |
AC |
138 ms |
36352 KiB |
| 05_rand_3_03.txt |
AC |
135 ms |
36292 KiB |
| 05_rand_3_04.txt |
AC |
136 ms |
36280 KiB |
| 05_rand_3_05.txt |
AC |
136 ms |
36280 KiB |
| 06_rand_4_01.txt |
AC |
194 ms |
36296 KiB |
| 06_rand_4_02.txt |
AC |
219 ms |
36188 KiB |
| 06_rand_4_03.txt |
AC |
350 ms |
36212 KiB |
| 06_rand_4_04.txt |
AC |
361 ms |
36280 KiB |
| 06_rand_4_05.txt |
AC |
282 ms |
36160 KiB |
| 06_rand_4_06.txt |
AC |
277 ms |
36260 KiB |
| 06_rand_4_07.txt |
AC |
251 ms |
36212 KiB |
| 06_rand_4_08.txt |
AC |
279 ms |
36320 KiB |
| 06_rand_4_09.txt |
AC |
196 ms |
36352 KiB |
| 06_rand_4_10.txt |
AC |
203 ms |
36276 KiB |
| 06_rand_4_11.txt |
AC |
417 ms |
36192 KiB |
| 06_rand_4_12.txt |
AC |
410 ms |
36200 KiB |
| 06_rand_4_13.txt |
AC |
286 ms |
36196 KiB |
| 06_rand_4_14.txt |
AC |
309 ms |
36348 KiB |
| 06_rand_4_15.txt |
AC |
311 ms |
36276 KiB |
| 06_rand_4_16.txt |
AC |
342 ms |
36248 KiB |
| 07_max_ans_01.txt |
AC |
186 ms |
36188 KiB |
| 07_max_ans_02.txt |
AC |
347 ms |
36196 KiB |
| 07_max_ans_03.txt |
AC |
269 ms |
36196 KiB |