답안 #743184

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
743184 2023-05-17T08:40:13 Z hmm789 Viruses (BOI20_viruses) C++14
0 / 100
1 ms 340 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define INF 1000000000000000000

vector<vector<int>> adj2[200];
//~ set<int> adj[200];
int ans[200];
bool v[200];

//~ bool cyc(int x) {
	//~ if(v[x]) return true;
	//~ v[x] = 1;
	//~ for(int i : adj[x]) {
		//~ bool f = cyc(i);
		//~ cout << "a " << x << " " << i << " " << f << endl;
		//~ if(f) return true;
	//~ }
	//~ v[x] = 0;
	//~ return false;
//~ }

int dp(int x) {
	if(x == 0 || x == 1) return 1;
	if(ans[x] == -2) return INF;
	if(ans[x] != -1) return ans[x];
	if(v[x]) return INF;
	v[x] = 1;
	ans[x] = INF;
	for(vector<int> v : adj2[x]) {
		int tmp = 0;
		for(int i : v) {
			tmp += dp(i);
			tmp = min(tmp, (long long)INF);
		}
		//~ cout << " a  " << x << " " << v[0] << " " << tmp << endl;
		ans[x] = min(ans[x], tmp);
	}
	//~ cout << " b " << x << " " << ans[x] << endl;
	if(ans[x] == INF) ans[x] = -2;
	v[x] = 0;
	if(ans[x] == -2) return INF;
	return ans[x];
}


int32_t main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	int g, n, m, x, y, a;
	cin >> g >> n >> m;
	for(int i = 0; i < n; i++) {
		cin >> x >> a;
		vector<int> tmp;
		for(int j = 0; j < a; j++) {
			cin >> y;
			//~ adj[x].insert(y);
			tmp.push_back(y);
		}
		adj2[x].push_back(tmp);
	}
	memset(ans, -1, sizeof(ans));
	for(int i = 2; i < g; i++) {
		if(dp(i) == INF) cout << "YES\n";
		else cout << "NO " << dp(i) << '\n';
	}
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Incorrect 0 ms 212 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Incorrect 0 ms 212 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Incorrect 0 ms 212 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Incorrect 0 ms 212 KB Output isn't correct
8 Halted 0 ms 0 KB -