Submission #566367

# Submission time Handle Problem Language Result Execution time Memory
566367 2022-05-22T09:22:22 Z elazarkoren Werewolf (IOI18_werewolf) C++17
15 / 100
4000 ms 40384 KB
#include <bits/stdc++.h>
#include "werewolf.h"
#define x first
#define y second
#define all(v) v.begin(), v.end()
#define chkmin(a, b) a = min(a, b)
#define chkmax(a, b) a = max(a, b)
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> pii;
typedef vector<pii> vii;
typedef vector<bool> vb;

void DfsMax(vvi &graph, int node, int max, vb &visited) {
    visited[node] = true;
    for (int neighbor : graph[node]) {
        if (neighbor <= max && !visited[neighbor]) DfsMax(graph, neighbor, max, visited);
    }
}

void DfsMin(vvi &graph, int node, int min, vb &visited) {
    visited[node] = true;
    for (int neighbor : graph[node]) {
        if (neighbor >= min && !visited[neighbor]) DfsMin(graph, neighbor, min, visited);
    }
}

vi check_validity(int n, vi x, vi y, vi s, vi e, vi l, vi r) {
    int m = x.size();
    vvi graph(n);
    for (int i = 0; i < m; i++) {
        graph[x[i]].push_back(y[i]);
        graph[y[i]].push_back(x[i]);
    }
    int q = s.size();
    vi ans(q);
    for (int i = 0; i < q; i++) {
        vb visited1(n), visited2(n);
        DfsMin(graph, s[i], l[i], visited1);
        DfsMax(graph, e[i], r[i], visited2);
        for (int j = 0; j < n; j++) {
            if (visited1[j] && visited2[j]) {
                ans[i] = 1;
                break;
            }
        }
    }
    return ans;
}
//6 6 3
//0 3
//1 2
//1 5
//1 3
//2 5
//3 4
//
//4 2 1 2
//4 2 2 2
//5 4 3 4
# Verdict Execution time Memory Grader output
1 Correct 1 ms 312 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 308 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 304 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 312 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 308 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 304 KB Output is correct
10 Correct 260 ms 752 KB Output is correct
11 Correct 142 ms 708 KB Output is correct
12 Correct 22 ms 960 KB Output is correct
13 Correct 292 ms 756 KB Output is correct
14 Correct 182 ms 724 KB Output is correct
15 Correct 248 ms 916 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 4078 ms 40384 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 312 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 308 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 304 KB Output is correct
10 Correct 260 ms 752 KB Output is correct
11 Correct 142 ms 708 KB Output is correct
12 Correct 22 ms 960 KB Output is correct
13 Correct 292 ms 756 KB Output is correct
14 Correct 182 ms 724 KB Output is correct
15 Correct 248 ms 916 KB Output is correct
16 Execution timed out 4078 ms 40384 KB Time limit exceeded
17 Halted 0 ms 0 KB -