Submission #651418

#TimeUsernameProblemLanguageResultExecution timeMemory
651418shmadBitaro’s Party (JOI18_bitaro)C++17
14 / 100
2059 ms15588 KiB
    #include <bits/stdc++.h>
     
    #define int long long
    #define vt vector
    #define pb push_back
    #define all(x) (x).begin(), (x).end()
    #define sz(x) (int)(x).size()
    #define ff first
    #define ss second
    #define dbg(x) cerr << #x << " = " << x << '\n'
    #define bit(x, i) ((x) >> (i) & 1)
     
    using namespace std;
    using ll = long long;
    using pii = pair<int, int>;
    using vvt = vt< vt<int> >;
     
    const int N = 1e5 + 5, mod = 1e9 + 7, B = 320;
    const ll inf = 1e18 + 7, LIM = (1ll << 60);
    const double eps = 1e-6;
     
    int n, m, q, dp[N], c[N];
    bool used[N], can[N];
    vt<int> g[N];
    vt<pii> f[N];
     
    void solve () {
    	cin >> n >> m >> q;
    	for (int i = 1; i <= m; i++) {
    		int x, y;
    		cin >> x >> y;
    		g[x].pb(y);
    	}
    	for (int i = 1; i <= n; i++) f[i].pb({0, i});
    	fill(can, can + n + 1, 1);
    	while (q--) {
    		int t, y;
    		cin >> t >> y;
    		for (int i = 1; i <= y; i++) {
    			cin >> c[i];
    			can[c[i]] = 0;	
    		}
    		int ans = -1;
    		dp[t] = 0;
    		for (int i = t - 1; i >= 1; i--) {
    			dp[i] = -1;
    			for (auto to: g[i]) {
    				if (to <= t && dp[to] != -1) dp[i] = max(dp[i], dp[to] + 1);	
    			}
    		}
    		for (int i = 1; i <= t; i++) {
    			if (can[i]) ans = max(ans, dp[i]);
    		}     
    		cout << ans << '\n';
    		for (int i = 1; i <= y; i++) can[c[i]] = 1;
    	}
    	cout << '\n';
    }
     
    bool testcases = 0;
     
    signed main() {
    #ifdef ONLINE_JUDGE
    	freopen(".in", "r", stdin);
    	freopen(".out", "w", stdout);
    #endif
    	cin.tie(0) -> sync_with_stdio(0);
    	int test = 1;
    	if (testcases) cin >> test;
    	for (int cs = 1; cs <= test; cs++) {
    		solve();
    	}
    }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...