Submission #723197

#TimeUsernameProblemLanguageResultExecution timeMemory
723197gagik_2007Viruses (BOI20_viruses)C++17
11 / 100
1 ms332 KiB
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cmath>
#include <chrono>
#include <ctime>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <limits>
#include <iomanip>
#include <unordered_set>
#include <unordered_map>
#include <fstream>
#include <functional>
#include <random>
#include <cassert>
#include <climits>
using namespace std;

typedef long long ll;
typedef long double ld;

#define ff first
#define ss second

ll ttt;
const ll INF = 1e18;
const ll MOD = 1e9 + 7;
const ll N = 200007;
const ll M = 307;
const ll LG = 31;
ll n, m, k;
ll len[N];
vector<pair<int, vector<int>>>a;
vector<vector<int>>abd;

int main() {
	//freopen("in.txt", "r", stdin);
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> k >> n >> m;
	a.resize(n);
	for (int i = 0; i < n; i++) {
		int v;
		cin >> v;
		a[i].ff = v;
		a[i].ss.clear();
		int sz;
		cin >> sz;
		for (int j = 0; j < sz; j++) {
			int x;
			cin >> x;
			a[i].ss.push_back(x);
		}
	}
	abd.resize(m, vector<int>(0));
	for (int i = 0; i < m; i++) {
		int sz;
		cin >> sz;
		for (int j = 0; j < sz; j++) {
			int x;
			cin >> x;
			abd[i].push_back(x);
		}
	}
	len[0] = len[1] = 1;
	for (int v = 2; v < k; v++) {
		len[v] = -1;
	}
	for (int _ = 0; _ <= n; _++) {
		for (int i = 0; i < n; i++) {
			//cout << i << " ";
			ll cur = 0;
			bool ok = true;
			for (int v : a[i].ss) {
				//cout << v << " ";
				if (len[v] == -1) {
					ok = false;
					break;
				}
				cur += len[v];
			}
			//cout << endl;
			if (ok)
				len[a[i].ff] = min((len[a[i].ff] == -1 ? LLONG_MAX : len[a[i].ff]), cur);
		}
	}
	for (int v = 2; v < k; v++) {
		if (len[v] != -1)cout << "NO " << len[v] << endl;
		else cout << "YES\n";
	}
}

/// ---- - --------  ------ -------- -- - - -
/// Just a reminder. Ubuntu password is I O I
/// ---- - --------  ------ -------- -- - - -
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...