Submission #954962

# Submission time Handle Problem Language Result Execution time Memory
954962 2024-03-29T02:02:59 Z ByeWorld Bitaro’s Party (JOI18_bitaro) C++14
7 / 100
2000 ms 34308 KB
#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define pb push_back
#define md ((l+r)>>1)
#define lf (id<<1)
#define rg ((id<<1)|1)
using namespace std;
typedef pair<ll,ll> pii;
typedef pair<pii,ll> ipii;
const int MAXN = 3e5+10;
const ll INF = 2e18+10;
const ll LOG = 61;
const int SQRT = 1e5+10;
const int MOD = 998244353;

int n, m, q;
vector <int> adj[MAXN];
vector <pii> best[MAXN], que;
vector <int> vec[MAXN];
int ans;
int busy[MAXN], vis[MAXN];
int day, day2;

void dfs(int nw, int dis){
    if(busy[nw] != day) ans = max(ans, dis);
    vis[nw] = day2;
    for(auto nx : adj[nw]){
        if(vis[nx] != day2) dfs(nx, dis+1);
    }
}
signed main() {
	cin >> n >> m >> q;
	for(int i=1; i<=m; i++){
        int u, v; cin >> u >> v;
        adj[v].pb(u);
    }
    for(int i=1; i<=n; i++){
        vector <pii> coba;
        coba.pb({0, i});
        for(auto nx : adj[i]){
            for(auto in : best[nx]) coba.pb({in.fi+1, in.se});
        }
        sort(coba.rbegin(), coba.rend());
        
        day++;
        for(auto in : coba){
            if(busy[in.se] == day) continue;
            busy[in.se] = day;
            best[i].pb(in);
            if(best[i].size() == SQRT) break;
        }
    }
    // for(int i=1; i<=n; i++){
    //     cout << "\ni" << i << "\n";
    //     for(auto in:best[i]) cout << in.fi << ' ' << in.se << '\n';
    // }
    // exit(0);
    for(int i=1; i<=q; i++){
        int sta, siz; cin >> sta >> siz;
        ans = -1;
        for(int j=0; j<siz; j++){
            int x; cin >> x;
            vec[i].pb(x);
        }
        if(siz >= SQRT){
            day++; day2++;
            for(auto in : vec[i]) busy[in] = day;
            dfs(sta, 0);
        } else {
            day++;
            for(auto in : vec[i]) busy[in] = day;
            for(auto in : best[sta]){
                if(busy[in.se] == day) continue;
                ans = in.fi;
                break;
            }
        }
        cout << ans << '\n';
    }
}
# Verdict Execution time Memory Grader output
1 Correct 6 ms 21592 KB Output is correct
2 Correct 5 ms 21596 KB Output is correct
3 Correct 5 ms 21668 KB Output is correct
4 Correct 5 ms 21596 KB Output is correct
5 Correct 9 ms 22644 KB Output is correct
6 Correct 10 ms 22480 KB Output is correct
7 Correct 9 ms 22364 KB Output is correct
8 Correct 51 ms 32032 KB Output is correct
9 Correct 50 ms 31828 KB Output is correct
10 Correct 50 ms 31800 KB Output is correct
11 Correct 38 ms 28416 KB Output is correct
12 Correct 17 ms 24412 KB Output is correct
13 Correct 41 ms 27984 KB Output is correct
14 Correct 41 ms 28096 KB Output is correct
15 Correct 19 ms 24788 KB Output is correct
16 Correct 40 ms 27916 KB Output is correct
17 Correct 36 ms 27920 KB Output is correct
18 Correct 16 ms 24412 KB Output is correct
19 Correct 34 ms 27732 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 21592 KB Output is correct
2 Correct 5 ms 21596 KB Output is correct
3 Correct 5 ms 21668 KB Output is correct
4 Correct 5 ms 21596 KB Output is correct
5 Correct 9 ms 22644 KB Output is correct
6 Correct 10 ms 22480 KB Output is correct
7 Correct 9 ms 22364 KB Output is correct
8 Correct 51 ms 32032 KB Output is correct
9 Correct 50 ms 31828 KB Output is correct
10 Correct 50 ms 31800 KB Output is correct
11 Correct 38 ms 28416 KB Output is correct
12 Correct 17 ms 24412 KB Output is correct
13 Correct 41 ms 27984 KB Output is correct
14 Correct 41 ms 28096 KB Output is correct
15 Correct 19 ms 24788 KB Output is correct
16 Correct 40 ms 27916 KB Output is correct
17 Correct 36 ms 27920 KB Output is correct
18 Correct 16 ms 24412 KB Output is correct
19 Correct 34 ms 27732 KB Output is correct
20 Execution timed out 2067 ms 34308 KB Time limit exceeded
21 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 21592 KB Output is correct
2 Correct 5 ms 21596 KB Output is correct
3 Correct 5 ms 21668 KB Output is correct
4 Correct 5 ms 21596 KB Output is correct
5 Correct 9 ms 22644 KB Output is correct
6 Correct 10 ms 22480 KB Output is correct
7 Correct 9 ms 22364 KB Output is correct
8 Correct 51 ms 32032 KB Output is correct
9 Correct 50 ms 31828 KB Output is correct
10 Correct 50 ms 31800 KB Output is correct
11 Correct 38 ms 28416 KB Output is correct
12 Correct 17 ms 24412 KB Output is correct
13 Correct 41 ms 27984 KB Output is correct
14 Correct 41 ms 28096 KB Output is correct
15 Correct 19 ms 24788 KB Output is correct
16 Correct 40 ms 27916 KB Output is correct
17 Correct 36 ms 27920 KB Output is correct
18 Correct 16 ms 24412 KB Output is correct
19 Correct 34 ms 27732 KB Output is correct
20 Execution timed out 2067 ms 34308 KB Time limit exceeded
21 Halted 0 ms 0 KB -