Submission #1298249

#TimeUsernameProblemLanguageResultExecution timeMemory
1298249buzdiBitaro’s Party (JOI18_bitaro)C++17
14 / 100
2096 ms12344 KiB
#include <bits/stdc++.h>
#define ll long long

using namespace std;

const int NMAX = 1e5;
const int BSIZE = 316;

int n, m, q;
int v[NMAX + 1];
int dp[NMAX + 1];
vector<int> g[NMAX + 1], gt[NMAX + 1];

int solve_heavy(int t, int k) {
    fill(dp + 1, dp + t + 1, 0);
    for(int i = 1; i <= k; i++) {
        dp[v[i]] = -1;
    }
    for(int i = 1; i <= t; i++) {
        for(int j : gt[i]) {
            if(dp[j] != -1) {
                dp[i] = max(dp[i], dp[j] + 1);
            }
        }
    }
    return dp[t];
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin >> n >> m >> q;
    for(int i = 1; i <= m; i++) {
        int a, b;
        cin >> a >> b;
        g[a].push_back(b);
        gt[b].push_back(a);
    }

    while(q--) {
        int t, k;
        cin >> t >> k;
        for(int i = 1; i <= k; i++) {
            cin >> v[i];
        }
        cout << solve_heavy(t, k) << '\n';
//        if(k > BSIZE) {
//            cout << solve_heavy() << '\n';
//        }
//        else {
//            cout << solve_light() << '\n';
//        }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...