Submission #579741

#TimeUsernameProblemLanguageResultExecution timeMemory
579741HeyYouNotYouYouPaths (BOI18_paths)C++14
23 / 100
3064 ms24652 KiB
#include <bits/stdc++.h> #define int long long #define endl '\n' using namespace std; const int N = 300001,INF=1e12; int n , m , k , x , col[N], prime[6], vis[N]; vector<int>edges[N]; int ans=0; void dfs(int node , int prod, int cnt){ //vis[node]=1; if(cnt == k){ return; } for(auto u:edges[node]) { if(prod%col[u]!=0){ ans++; dfs(u , prod*col[u] , cnt+1); } } } int32_t main() { //freopen("abc.in", "r", stdin); cin >> n >> m >> k ; prime[1]=2,prime[2]=3,prime[3]=5,prime[4]=7,prime[5]=11; for(int i = 1 ; i <= n ; i ++){ cin >> x; col[i] = prime[x]; } for(int i = 0 ; i < m ; i ++) { int u , v ; cin >> u >> v; edges[u].push_back(v); edges[v].push_back(u); } for(int i = 1 ; i <= n ; i++) { if(!vis[i]){ dfs(i,col[i],1); } } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...