QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#536578 | #5110. Splitstream | RngBased# | WA | 2ms | 8068kb | C++20 | 2.3kb | 2024-08-29 14:46:22 | 2024-08-29 14:46:23 |
Judging History
answer
#include <bits/stdc++.h>
#define ll long long
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pdd pair<double, double>
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define N 200015
using namespace std;
int n, m, q, fa1[N], fa2[N], son1[N], son2[N], type_down[N], type_up[N], sz[N];
void dfs(int p){
if (!type_down[p])
return;
if (type_down[p] == 1){
sz[son1[p]] = (sz[p] + 1) / 2;
sz[son2[p]] = sz[p] / 2;
dfs(son1[p]), dfs(son2[p]);
}
else {
int nxt = son1[p];
if (sz[fa1[nxt]] == 0 || sz[fa2[nxt]] == 0)
return;
sz[nxt] = sz[fa1[nxt]] + sz[fa2[nxt]];
dfs(nxt);
}
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> m >> n >> q;
for (int i = 1; i <= n; i++){
char c;
int x, y, z;
cin >> c >> x >> y >> z;
if (c == 'S'){
son1[x] = y, son2[x] = z;
fa1[y] = x, fa1[z] = x;
type_down[x] = 1, type_up[y] = 2, type_up[z] = 3;
}
else {
son1[x] = z, son1[y] = z;
fa1[z] = x, fa2[z] = y;
type_down[x] = 2, type_down[y] = 2, type_up[z] = 1;
}
}
sz[1] = m, dfs(1);
while (q--){
ll x, k; cin >> x >> k;
if (k > sz[x]){
cout << "none\n";
continue;
}
while (x != 1){
if (type_up[x] == 1){
int sz1 = sz[fa1[x]], sz2 = sz[fa2[x]];
if (min(sz1, sz2) * 2 >= k){
if (k % 2)
x = fa1[x], k = (k + 1) / 2;
else x = fa2[x], k = k / 2;
}
else if (sz1 > sz2){
x = fa1[x];
k = (k - sz2);
}
else {
x = fa2[x];
k = (k - sz1);
}
}
else if (type_up[x] == 2){
k = 2 * k - 1;
x = fa1[x];
}
else {
x = fa1[x];
k = k * 2;
}
}
cout << k << "\n";
}
}
/*
100 3 1
S 1 4 2
S 2 3 5
M 3 4 6
6 51
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 5776kb
input:
5 8 26 M 8 9 13 S 2 4 5 S 1 2 3 M 6 5 8 S 4 9 10 S 10 14 15 S 3 6 7 S 7 11 12 2 3 2 4 3 2 3 3 4 2 4 3 5 1 5 2 6 1 6 2 7 1 7 2 8 2 8 3 9 1 9 2 10 1 10 2 11 1 11 2 12 1 13 3 13 4 14 1 14 2 15 1
output:
5 none 4 none 5 none 3 none 2 none 4 none 3 none 1 none 5 none 4 none none 3 none 5 none none
result:
ok 26 lines
Test #2:
score: 0
Accepted
time: 2ms
memory: 7880kb
input:
1000000000 8191 1000 S 1 2 3 S 2 4 5 S 3 6 7 S 4 8 9 S 5 10 11 S 6 12 13 S 7 14 15 S 8 16 17 S 9 18 19 S 10 20 21 S 11 22 23 S 12 24 25 S 13 26 27 S 14 28 29 S 15 30 31 S 16 32 33 S 17 34 35 S 18 36 37 S 19 38 39 S 20 40 41 S 21 42 43 S 22 44 45 S 23 46 47 S 24 48 49 S 25 50 51 S 26 52 53 S 27 54 55...
output:
1 3 999999999 499999999 333333331 999999997 499999997 333333329 2 4 1000000000 500000000 333333332 999999998 499999998 333333330 1 5 999999997 499999997 333333329 999999993 499999993 333333325 3 7 999999999 499999999 333333331 999999995 499999995 333333327 2 6 999999998 499999998 333333330 999999994...
result:
ok 1000 lines
Test #3:
score: 0
Accepted
time: 2ms
memory: 7824kb
input:
1000000000 8190 1000 S 1 2 3 M 8193 8194 8192 S 2 4 5 M 8195 8196 8193 S 3 6 7 M 8197 8198 8194 S 4 8 9 M 8199 8200 8195 S 5 10 11 M 8201 8202 8196 S 6 12 13 M 8203 8204 8197 S 7 14 15 M 8205 8206 8198 S 8 16 17 M 8207 8208 8199 S 9 18 19 M 8209 8210 8200 S 10 20 21 M 8211 8212 8201 S 11 22 23 M 821...
output:
1 2 1000000000 500000000 333333333 999999999 499999999 333333332 1 1 3 3 999999999 999999999 499999999 499999999 333333331 333333331 999999997 999999997 499999997 499999997 333333329 333333329 2 2 4 4 1000000000 1000000000 500000000 500000000 333333332 333333332 999999998 999999998 499999998 4999999...
result:
ok 1000 lines
Test #4:
score: -100
Wrong Answer
time: 0ms
memory: 8068kb
input:
1000000000 10000 1000 S 1 2 3 S 2 4 5 S 4 6 7 S 6 8 9 S 8 10 11 S 10 12 13 S 12 14 15 S 14 16 17 S 16 18 19 S 18 20 21 S 20 22 23 S 22 24 25 S 24 26 27 S 26 28 29 S 28 30 31 S 30 32 33 S 32 34 35 S 34 36 37 S 36 38 39 S 38 40 41 S 40 42 43 S 42 44 45 S 44 46 47 S 46 48 49 S 48 50 51 S 50 52 53 S 52 ...
output:
1 1 none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none n...
result:
wrong answer 3rd lines differ - expected: '536870913', found: 'none'