Submission #1204724

#TimeUsernameProblemLanguageResultExecution timeMemory
1204724UnforgettableplViruses (BOI20_viruses)C++20
11 / 100
0 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const unsigned int INF = ((unsigned int)1<<63); int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int G,N,M; cin >> G >> N >> M; vector<vector<vector<int>>> mutations(G); for(int i=1;i<=N;i++){ int a,k; cin >> a >> k; for(int&x:mutations[a].emplace_back(k))cin>>x; } vector<vector<int>> antibodies; for(int i=1;i<=M;i++){ int l; cin >> l; for(int&x:antibodies.emplace_back(l))cin>>x; } vector<__int128> ans(G); { // Solving M==0 fill(ans.begin(),ans.end(),INF); ans[0]=1; ans[1]=1; vector<bool> visited(G); auto dfs = [&](auto&& self,int x)->__int128{ if(visited[x])return ans[x]; visited[x]=true; for(auto&mutation:mutations[x]){ __int128 score = 0; for(int&i:mutation)score+=self(self,i); ans[x]=min(ans[x],score); } return ans[x]; }; for(int i=2;i<G;i++){ fill(visited.begin(),visited.end(),false); dfs(dfs,i); if(ans[i]>=INF){ cout << "YES\n"; } else cout << "NO " << (int)ans[i] << '\n'; } } // for(int i=2;i<G;i++)cout<<ans[i]<<'\n'; }
#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...