fork download
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cmath>
  4. #include<cstring>
  5. #include<set>
  6. #include<vector>
  7. #include<map>
  8. #include<algorithm>
  9. #include<utility>
  10. #include<ctime>
  11.  
  12. #define MX 100000
  13. #define pb push_back
  14. #define mp make_pair
  15. #define fs first
  16. #define sec second
  17. #define sc scanf
  18. #define pr printf
  19. using namespace std;
  20. vector<int> v[1001];
  21. bool vis[1001];
  22. int c;
  23. void initial(){
  24. for(int i=0;i<=1001;++i)
  25. {
  26. vis[i]=false;
  27. }
  28. }
  29. void dfs(int s){
  30. vis[s]=true;
  31. c=c+1;
  32. for(int i=0;i<v[s].size();++i){
  33. if(vis[v[s][i]]==false)
  34. dfs(v[s][i]);
  35. }
  36. }
  37. int main()
  38. {
  39. //freopen("t10.txt", "r", stdin); // line1
  40. //freopen("o10.txt", "w", stdout);
  41. int min=10000000;
  42. int n,m,i,j,a,b,k;
  43. cin>>n>>m>>k;
  44. while(m--){
  45. cin>>a>>b;
  46. v[a].push_back(b);
  47. }
  48. for(i=1;i<=n;i++){
  49. initial();
  50. c=0;
  51. dfs(i);
  52. if(min>c)
  53. min=c;
  54. }
  55. cout<<min*k;
  56. return 0;
  57. }
  58.  
Success #stdin #stdout 0s 3472KB
stdin
3 3 100
1 2
2 3
3 1
stdout
300