Submission #320824

#TimeUsernameProblemLanguageResultExecution timeMemory
320824mohamedsobhi777Bitaro’s Party (JOI18_bitaro)C++14
0 / 100
4 ms2796 KiB
#include <bits/stdc++.h>


#pragma GCC optimize("-Ofast")
//#pragma GCC optimize("trapv")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,popcnt,abm,mmx,avx2,tune=native")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-funroll-loops")

#define I inline void
#define S struct
#define vi vector<int>
#define vii vector<pair<int, int>>
#define pii pair<int, int>
#define pll pair<ll, ll>

using namespace std;
using ll = long long;
using ld = long double;

const int N = 1e5 + 7, mod = 1e9 + 7;
const int inf = N;
// How interesting!
const int rot = 0;

int n, m, q;
int dp1[N], bad[N];
vector<int> adj[N];

int main()
{

        ios_base::sync_with_stdio(0);
        cin.tie(0);
        //freopen("in.in", "r", stdin);
        cin >> n >> m >> q;
        for (int i = 0; i < m; ++i)
        {
                int u, v;
                cin >> u >> v;
                adj[v].push_back(u);
        }

        for (int i = 0; i < q; ++i)
        {
                int x, t;
                cin >> x >> t;
                vector<int> vec;
                for (int j = 0; j < t; ++j)
                {
                        int y;
                        cin >> y;
                        vec.push_back(y);
                        bad[y] = 1;
                }
                if (bad[x])
                {
                        cout << -1 << "\n";
                        continue;
                }
                if (t < rot)
                {
                }
                else
                {
                        for (int j = 1; j <= n; ++j)
                                dp1[j] = (bad[j] ? -n : 0);
                        for (int j = 1; j <= n; ++j)
                                for (auto u : adj[j])
                                        dp1[j] = max(dp1[j], dp1[u] + 1);
                        cout << dp1[x] << "\n";
                }

                for (auto u : vec)
                {
                        bad[u] = 0;
                }
        }
        return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...