제출 #600929

#제출 시각아이디문제언어결과실행 시간메모리
600929ArnchViruses (BOI20_viruses)C++17
11 / 100
2 ms596 KiB
// oooo /* har chi delet mikhad bebar ~ gitar o ba khodet nabar! ~ ;Amoo_Hasan; */ #include<bits/stdc++.h> //#pragma GCC optimize("O3,no-stack-protector,unroll-loops") //#pragma GCC target("avx2,fma") using namespace std; typedef long long ll; typedef long double ld; #define Sz(x) int((x).size()) #define All(x) (x).begin(), (x).end() #define wtf(x) cout<<#x <<" : " <<x <<endl constexpr ll inf = 1e18, N = 1e3 + 10; ll dp[N]; vector<int> vc[N], ind[N], val[N]; int main() { ios :: sync_with_stdio(0), cin.tie(0); int g, n, m; cin >>g >>n >>m; for(int i = 0; i < n; i++) { int a, k; cin >>a >>k; for(int j = 0; j < k; j++) { int u; cin >>u; val[i].push_back(u); } ind[a].push_back(i); } for(int i = 0; i < m; i++) { int s; cin >>s; for(int j = 0; j < s; j++) { int u; cin >>u; vc[i].push_back(u); } } assert(m == 0); for(int i = 0; i < g; i++) dp[i] = -1; dp[0] = dp[1] = 1; for(int t = 0; t < g; t++) { for(int i = 2; i < g; i++) { for(auto j : ind[i]) { ll cur = 0; bool flag = true; for(auto k : val[j]) { if(dp[k] == -1) { flag = false; break; } cur += dp[k]; } if(flag) { if(dp[i] == -1) dp[i] = cur; else dp[i] = min(dp[i], cur); } } } } for(int i = 2; i < g; i++) { if(dp[i] == -1) cout<<"YES" <<endl; else cout<<"NO" <<" " <<dp[i] <<endl; } return 0; }
#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...