QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#37590 | #4251. Game | jli505 | 2 | 10ms | 38720kb | C++20 | 2.5kb | 2022-07-02 11:59:08 | 2022-07-02 11:59:10 |
Judging History
answer
#include <bits/stdc++.h>
#include "game.h"
using namespace std;
void fastIO(){
ios_base::sync_with_stdio(false);
cin.tie(0);
}
int N, K;
bool good = false;
int earl[21][300100], late[21][300100];
vector<int> g[300100], rev[300100];
void build(int node, int l, int r, int h){
for (int i = l; i <= r; i++){
earl[h][i] = late[h][i] = node;
}
if (l == r){
return;
}
int mid = (l+r)/2;
build(node*2, l, mid, h+1);
build(node*2+1, mid+1, r, h+1);
}
void init(int n, int k){
N = n, K = k;
build(1, 1, K, 1);
}
void dfs(int node, int val, int h){
if (late[h][node] == 0 || late[h][node] < val){
late[h][node] = val;
} else {
return;
}
for (int nx : g[node]){
dfs(nx, val, h);
}
}
void dfs2(int node, int val, int h){
if (earl[h][node] == 0 || earl[h][node] > val){
earl[h][node] = val;
} else {
return;
}
for (int nx : rev[node]){
dfs2(nx, val, h);
}
}
void dnq(int node, int l, int r, int u, int v, int h){
if (l == r){
if (late[h][u]){
dfs(v, late[h][u], h);
}
if (earl[h][v]){
dfs2(u, earl[h][v], h);
}
if (u > K && earl[h][u] == late[h][u] && earl[h][u]) good = true;
if (v > K && earl[h][v] == late[h][v] && earl[h][v]) good = true;
return;
}
int mid = (l+r)/2;
if (late[h+1][u]){
dfs(v, late[h+1][u], h+1);
}
if (earl[h+1][v]){
dfs2(u, earl[h+1][v], h+1);
}
//cout << u << " " << v << " " << h << " " << earl[h+1][u] << " " << earl[h+1][v] << "\n";
if (u > K && earl[h+1][u] && late[h+1][u] && earl[h+1][u] <= late[h+1][u]){
good = true;
}
if (v > K && earl[h+1][v] && late[h+1][v] && earl[h+1][v] <= late[h+1][v]){
good = true;
}
if ((earl[h+1][u] == node*2 && earl[h+1][u] == earl[h+1][v]) || (late[h+1][u] == node*2 && late[h+1][u] == late[h+1][v])){
dnq(node*2, l, mid, u, v, h+1);
}
if ((earl[h+1][u] == node*2+1 && earl[h+1][u] == earl[h+1][v]) || (late[h+1][u] == node*2+1 && late[h+1][u] == late[h+1][v])){
dnq(node*2+1, mid+1, r, u, v, h+1);
}
}
int add_teleporter(int u, int v){
u++, v++;
if (good) return 1;
if (u <= K && v <= K && u >= v){
good = true;
return 1;
}
g[u].push_back(v);
rev[v].push_back(u);
dnq(1, 1, K, u, v, 1);
if (good) return 1;
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 2
Accepted
Test #1:
score: 2
Accepted
time: 2ms
memory: 21756kb
input:
1 1 1 893123 893123 -1
output:
0
result:
ok interaction finished.
Test #2:
score: 0
Accepted
time: 4ms
memory: 30924kb
input:
9 9 29 893122 893124 893121 893127 893120 893124 893123 893121 893122 893131 893125 893131 893121 893126 893123 893126 893126 893131 893123 893131 893123 893125 893123 893124 893127 893125 893120 893126 893123 893120 893121 893131 893123 893127 893122 893126 893122 893127 893127 893131 893122 893125...
output:
28
result:
ok interaction finished.
Test #3:
score: 0
Accepted
time: 4ms
memory: 38556kb
input:
100 100 80 893180 893071 893134 893063 893150 893091 893127 893178 893142 893177 893153 893156 893127 893137 893174 893065 893127 893070 893126 893061 893171 893089 893173 893072 893153 893058 893156 893074 893151 893068 893136 893060 893120 893083 893073 893091 893148 893163 893073 893088 893156 89...
output:
80 80 80 59
result:
ok interaction finished.
Test #4:
score: 0
Accepted
time: 8ms
memory: 34600kb
input:
45 45 80 893143 893167 893122 893132 893123 893140 893120 893139 893158 893167 893154 893163 893133 893137 893133 893142 893135 893137 893121 893135 893137 893149 893141 893152 893122 893167 893128 893145 893140 893167 893122 893127 893134 893142 893122 893129 893141 893156 893146 893149 893123 8931...
output:
80 49
result:
ok interaction finished.
Test #5:
score: 0
Accepted
time: 4ms
memory: 38424kb
input:
100 100 80 893169 893058 893132 893065 893143 893068 893153 893167 893152 893182 893138 893162 893129 893163 893146 893164 893134 893180 893142 893167 893144 893059 893132 893064 893135 893091 893164 893068 893123 893179 893126 893060 893136 893140 893179 893081 893139 893181 893120 893057 893172 89...
output:
80 80 80 42
result:
ok interaction finished.
Test #6:
score: 0
Accepted
time: 10ms
memory: 38720kb
input:
100 100 80 893135 893081 893170 893076 893148 893075 893134 893159 893159 893073 893170 893088 893131 893138 893121 893166 893171 893168 893127 893137 893147 893145 893062 893076 893160 893059 893063 893088 893137 893073 893123 893182 893152 893170 893141 893172 893137 893087 893167 893085 893147 89...
output:
80 80 80 37
result:
ok interaction finished.
Test #7:
score: 0
Accepted
time: 4ms
memory: 38048kb
input:
100 100 80 893062 893075 893139 893156 893137 893083 893071 893075 893072 893080 893141 893060 893126 893179 893064 893081 893167 893077 893139 893165 893056 893085 893169 893182 893062 893087 893141 893078 893062 893078 893129 893176 893065 893077 893141 893181 893152 893158 893151 893078 893157 89...
output:
80 80 80 59
result:
ok interaction finished.
Subtask #2:
score: 0
Wrong Answer
Dependency #1:
100%
Accepted
Test #8:
score: 0
Wrong Answer
time: 3ms
memory: 30420kb
input:
100 10 80 893135 893150 893174 893168 893159 893149 893162 893082 893158 893129 893072 893150 893088 893079 893155 893154 893086 893126 893078 893153 893177 893138 893057 893066 893151 893089 893076 893162 893165 893164 893085 893170 893084 893128 893074 893083 893138 893148 893147 893167 893071 893...
output:
80 26
result:
wrong answer Wrong Answer [1]
Subtask #3:
score: 0
Skipped
Dependency #2:
0%
Subtask #4:
score: 0
Skipped
Dependency #3:
0%
Subtask #5:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
0%