• Source
    1. #include <cstdio>
    2. #include <iostream>
    3. #include <cmath>
    4. #include <iomanip>
    5. #include <cstring>
    6. #include <fstream>
    7. #include <algorithm>
    8. #include <queue>
    9. #include <utility>
    10. #include <vector>
    11. #define FOR(i,a,b) for(int i = (a); i <= (b); i++)
    12. #define FORD(i,a,b) for(int i = (a); i >= (b); i--)
    13. #define maxn 100003
    14. #define task "cycle"
    15.  
    16. typedef char NameFile[1000];
    17.  
    18. using namespace std;
    19.  
    20. NameFile input, output, answer;
    21. ifstream fi, fo, fa;
    22.  
    23. int n, m;
    24. vector <int> a[100001];
    25.  
    26. int readInput()
    27. {
    28. fi.open(input);
    29. }
    30.  
    31. int readOutput()
    32. {
    33. fo.open(output);
    34. }
    35.  
    36. int readAnswer()
    37. {
    38. fa.open(answer);
    39. }
    40. int check()
    41. {
    42. int u,v;
    43. fi>>n>>m;
    44.  
    45. FOR(i,1,m)
    46. {
    47. fi>>u>>v;
    48. a[u].push_back(v);
    49. a[v].push_back(u);
    50. }
    51. int numa=0;
    52. int luua[100001];
    53. fo>>numa;
    54. cout<<"So dinh: "<<numa<<endl;
    55. if(numa<4) {cout<<"So dinh trong chu trinh phai >3"<<endl; return 0;}
    56. for(int i=1;i<=numa;i++) fo>>luua[i];
    57. if(luua[1]!=luua[numa]) {cout<<"Dinh dau va cuoi khac nhau"<<endl; return 0;}
    58. FOR(i,2,numa)
    59. {
    60. u=luua[i-1];
    61. v=luua[i];
    62. if(u<1||v<1||u>n||v>n) {cout<<"canh khong thuoc G"<<endl;return 0;}
    63. int ok=0;
    64. FOR(x,0,a[u].size()-1)
    65. if(v==a[u][x]) ok=1;
    66. if(ok==1) return 1;
    67. }
    68. cout<<"ket qua sai"<<endl;
    69. return 0;
    70. }
    71.  
    72. main()
    73. {
    74. gets(input);
    75. gets(output);
    76.  
    77. strcpy(answer, input);
    78. strcat(input, task".inp");
    79. strcat(output, task".out");
    80. strcat(answer, task".out");
    81. readInput();
    82. readOutput();
    83. readAnswer();
    84.  
    85. if(check()) cout<<"Ket qua dung"<<endl<<0.50;
    86. else cout<<0.00;
    87.  
    88. fi.close();
    89. fo.close();
    90. fa.close();
    91. // system("pause");
    92. }
    93.