Submission #876911

# Submission time Handle Problem Language Result Execution time Memory
876911 2023-11-22T13:35:14 Z Ivkosqn Jail (JOI22_jail) C++14
49 / 100
5000 ms 12812 KB
#include <bits/stdc++.h>
#define endl '\n'

using namespace std;

const int maxn = 120010;
int n, m, s[maxn], f[maxn], used[maxn], bef[maxn];
vector<int> v[maxn], g[maxn], paths[510];
int usedp[maxn];

void find_path(int ver){
    used[ver] = 1;
    for(int nb : v[ver]){
        if(used[nb])
            continue;
        bef[nb] = ver;
        find_path(nb);
    }
}

void read(){
    cin >> n;
    for(int i = 1;i <= n;i++){
        v[i].clear();
        g[i].clear();
    }
    for(int i = 1;i <= m;i++)
        paths[i].clear();
    for(int i = 1;i <= n - 1;i++){
        int x, y;
        cin >> x >> y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    cin >> m;
    for(int i = 1;i <= m;i++){
        cin >> s[i] >> f[i];
        for(int k = 1;k <= n;k++)
            used[k] = 0;
        find_path(s[i]);
        paths[i].push_back(f[i]);
        int x = f[i];
        while(x != s[i]){
            x = bef[x];
            paths[i].push_back(x);
        }
        sort(paths[i].begin(), paths[i].end());
    }
}

bool cycle = 0;

void DFS(int ver){
    used[ver] = 1;
    for(int nb : g[ver]){
        if(!used[nb])
            DFS(nb);
        else if(used[nb] == 1)
            cycle = 1;
    }
    used[ver] = 2;
}
void dfs(int ver){
    used[ver] = 1;
    for(int nb : v[ver]){
        if(used[nb])
            continue;
        dfs(nb);
    }
}

void solve(){
    read();
    for(int i = 1;i <= m;i++){
        for(int nb : paths[i])
            usedp[nb] = 1;
        for(int j = 1;j <= m;j++){
            if(i == j)
                continue;
            for(int k = 1;k <= n;k++)
                used[k] = 0;
            used[s[j]] = 1;
            dfs(s[i]);
            if(!used[f[i]]){
                g[j].push_back(i);
                continue;
            }
            if(usedp[s[j]]){
                g[j].push_back(i);
                continue;
            }
            int ans = -1;
            for(int x : paths[j]){
                if(x == f[i])
                    ans = 0;
            }
            if(ans == 0){
                g[j].push_back(i);
            }
        }
        for(int nb : paths[i])
            usedp[nb] = 0;
    }
    cycle = 0;
    memset(used, 0, sizeof(used));
    for(int i = 1;i <= n;i++){
        if(!used[i]){
            DFS(i);
        }
    }
    if(cycle)
        cout << "No\n";
    else
        cout << "Yes\n";
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int t;
    cin >> t;
    while(t--){
        solve();
    }
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 7000 KB Output is correct
2 Correct 2 ms 7156 KB Output is correct
3 Correct 2 ms 7100 KB Output is correct
4 Correct 19 ms 7108 KB Output is correct
5 Correct 28 ms 7512 KB Output is correct
6 Correct 2 ms 7000 KB Output is correct
7 Correct 3 ms 7148 KB Output is correct
8 Correct 199 ms 7320 KB Output is correct
9 Execution timed out 5026 ms 8036 KB Time limit exceeded
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 7000 KB Output is correct
2 Correct 1 ms 7004 KB Output is correct
3 Correct 2 ms 7004 KB Output is correct
4 Correct 2 ms 7004 KB Output is correct
5 Correct 3 ms 7004 KB Output is correct
6 Correct 2 ms 7016 KB Output is correct
7 Correct 2 ms 7000 KB Output is correct
8 Correct 3 ms 7004 KB Output is correct
9 Correct 3 ms 7004 KB Output is correct
10 Correct 3 ms 7004 KB Output is correct
11 Correct 2 ms 7004 KB Output is correct
12 Correct 2 ms 7004 KB Output is correct
13 Correct 3 ms 7004 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 7000 KB Output is correct
2 Correct 1 ms 7004 KB Output is correct
3 Correct 2 ms 7004 KB Output is correct
4 Correct 2 ms 7004 KB Output is correct
5 Correct 3 ms 7004 KB Output is correct
6 Correct 2 ms 7016 KB Output is correct
7 Correct 2 ms 7000 KB Output is correct
8 Correct 3 ms 7004 KB Output is correct
9 Correct 3 ms 7004 KB Output is correct
10 Correct 3 ms 7004 KB Output is correct
11 Correct 2 ms 7004 KB Output is correct
12 Correct 2 ms 7004 KB Output is correct
13 Correct 3 ms 7004 KB Output is correct
14 Correct 2 ms 7000 KB Output is correct
15 Correct 2 ms 7004 KB Output is correct
16 Correct 3 ms 7004 KB Output is correct
17 Correct 3 ms 7148 KB Output is correct
18 Correct 4 ms 7004 KB Output is correct
19 Correct 2 ms 6876 KB Output is correct
20 Correct 4 ms 7104 KB Output is correct
21 Correct 4 ms 7004 KB Output is correct
22 Correct 3 ms 7004 KB Output is correct
23 Correct 2 ms 7092 KB Output is correct
24 Correct 2 ms 7256 KB Output is correct
25 Correct 4 ms 7000 KB Output is correct
26 Correct 2 ms 7004 KB Output is correct
27 Correct 4 ms 7004 KB Output is correct
28 Correct 2 ms 7004 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 7000 KB Output is correct
2 Correct 1 ms 7004 KB Output is correct
3 Correct 2 ms 7004 KB Output is correct
4 Correct 2 ms 7004 KB Output is correct
5 Correct 3 ms 7004 KB Output is correct
6 Correct 2 ms 7016 KB Output is correct
7 Correct 2 ms 7000 KB Output is correct
8 Correct 3 ms 7004 KB Output is correct
9 Correct 3 ms 7004 KB Output is correct
10 Correct 3 ms 7004 KB Output is correct
11 Correct 2 ms 7004 KB Output is correct
12 Correct 2 ms 7004 KB Output is correct
13 Correct 3 ms 7004 KB Output is correct
14 Correct 2 ms 7000 KB Output is correct
15 Correct 2 ms 7004 KB Output is correct
16 Correct 3 ms 7004 KB Output is correct
17 Correct 3 ms 7148 KB Output is correct
18 Correct 4 ms 7004 KB Output is correct
19 Correct 2 ms 6876 KB Output is correct
20 Correct 4 ms 7104 KB Output is correct
21 Correct 4 ms 7004 KB Output is correct
22 Correct 3 ms 7004 KB Output is correct
23 Correct 2 ms 7092 KB Output is correct
24 Correct 2 ms 7256 KB Output is correct
25 Correct 4 ms 7000 KB Output is correct
26 Correct 2 ms 7004 KB Output is correct
27 Correct 4 ms 7004 KB Output is correct
28 Correct 2 ms 7004 KB Output is correct
29 Correct 217 ms 7108 KB Output is correct
30 Correct 94 ms 7000 KB Output is correct
31 Correct 85 ms 7204 KB Output is correct
32 Correct 55 ms 7000 KB Output is correct
33 Correct 14 ms 7000 KB Output is correct
34 Correct 166 ms 7144 KB Output is correct
35 Correct 163 ms 7480 KB Output is correct
36 Correct 126 ms 7132 KB Output is correct
37 Correct 89 ms 7140 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 7000 KB Output is correct
2 Correct 1 ms 7004 KB Output is correct
3 Correct 2 ms 7004 KB Output is correct
4 Correct 2 ms 7004 KB Output is correct
5 Correct 3 ms 7004 KB Output is correct
6 Correct 2 ms 7016 KB Output is correct
7 Correct 2 ms 7000 KB Output is correct
8 Correct 3 ms 7004 KB Output is correct
9 Correct 3 ms 7004 KB Output is correct
10 Correct 3 ms 7004 KB Output is correct
11 Correct 2 ms 7004 KB Output is correct
12 Correct 2 ms 7004 KB Output is correct
13 Correct 3 ms 7004 KB Output is correct
14 Correct 2 ms 7000 KB Output is correct
15 Correct 2 ms 7004 KB Output is correct
16 Correct 3 ms 7004 KB Output is correct
17 Correct 3 ms 7148 KB Output is correct
18 Correct 4 ms 7004 KB Output is correct
19 Correct 2 ms 6876 KB Output is correct
20 Correct 4 ms 7104 KB Output is correct
21 Correct 4 ms 7004 KB Output is correct
22 Correct 3 ms 7004 KB Output is correct
23 Correct 2 ms 7092 KB Output is correct
24 Correct 2 ms 7256 KB Output is correct
25 Correct 4 ms 7000 KB Output is correct
26 Correct 2 ms 7004 KB Output is correct
27 Correct 4 ms 7004 KB Output is correct
28 Correct 2 ms 7004 KB Output is correct
29 Correct 217 ms 7108 KB Output is correct
30 Correct 94 ms 7000 KB Output is correct
31 Correct 85 ms 7204 KB Output is correct
32 Correct 55 ms 7000 KB Output is correct
33 Correct 14 ms 7000 KB Output is correct
34 Correct 166 ms 7144 KB Output is correct
35 Correct 163 ms 7480 KB Output is correct
36 Correct 126 ms 7132 KB Output is correct
37 Correct 89 ms 7140 KB Output is correct
38 Execution timed out 5014 ms 7756 KB Time limit exceeded
39 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 7004 KB Output is correct
2 Correct 2 ms 7004 KB Output is correct
3 Correct 2 ms 7004 KB Output is correct
4 Correct 1 ms 7004 KB Output is correct
5 Correct 18 ms 7112 KB Output is correct
6 Correct 2 ms 7004 KB Output is correct
7 Correct 2 ms 7004 KB Output is correct
8 Correct 2 ms 7004 KB Output is correct
9 Correct 2 ms 7004 KB Output is correct
10 Correct 2 ms 7004 KB Output is correct
11 Correct 2 ms 7004 KB Output is correct
12 Correct 133 ms 7096 KB Output is correct
13 Correct 1020 ms 7608 KB Output is correct
14 Correct 496 ms 7708 KB Output is correct
15 Correct 827 ms 7616 KB Output is correct
16 Execution timed out 5039 ms 12812 KB Time limit exceeded
17 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 7000 KB Output is correct
2 Correct 2 ms 7156 KB Output is correct
3 Correct 2 ms 7100 KB Output is correct
4 Correct 19 ms 7108 KB Output is correct
5 Correct 28 ms 7512 KB Output is correct
6 Correct 2 ms 7000 KB Output is correct
7 Correct 3 ms 7148 KB Output is correct
8 Correct 199 ms 7320 KB Output is correct
9 Execution timed out 5026 ms 8036 KB Time limit exceeded
10 Halted 0 ms 0 KB -