Source code for submission s1066

Go to diff to previous submission

fn.cpp

  1. #include <cstdio>
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. class point
  6. {
  7. public:
  8. std::vector<int> conn;
  9. };
  10.  
  11. int main()
  12. {
  13. int n = 0, m = 0;
  14. while( scanf( "%d %d\n", &n, &m ) == 2 )
  15. {
  16. point p[10000];
  17. int aux =0, aux2= 0;
  18.  
  19. for ( register int i = 0; i < m; i++ )
  20. {
  21. scanf("%d %d\n", &aux, &aux2 );
  22. p[aux -1 ].conn.push_back( aux2 -1 );
  23. p[aux2-1].conn.push_back( aux-1 );
  24. }
  25.  
  26. bool deg = false;
  27. int state = 0;
  28. std::vector<int> deg3;
  29. for ( register int i = 0; i < n; i++ )
  30. {
  31.  
  32. if ( p[i].conn.size() == 0 )
  33. {
  34. state = -1;
  35. break;
  36. }
  37. else if ( p[i].conn.size() > 3 )
  38. {
  39. state = 1;
  40. break;
  41. }
  42. else if ( p[i].conn.size() == 3 )
  43. {
  44. deg = true;
  45. deg3.push_back( i );
  46. }
  47. }
  48.  
  49. switch( state )
  50. {
  51. case -1 :
  52. std::cout << "NO" << std::endl;
  53. break;
  54. case 1 :
  55. std::cout << "YES" << std::endl;
  56. break;
  57. default:
  58. {
  59. if ( !deg || deg3.size() < 2 )
  60. {
  61. std::cout << "NO" << std::endl;
  62. }
  63. else
  64. {
  65. bool bunny = false;
  66.  
  67. for ( register unsigned int i = 0; i < deg3.size(); i++ )
  68. {
  69. int len = 0;
  70. for ( register unsigned int j = 0; j < deg3.size(); j++ )
  71. {
  72. if (j == i)
  73. continue;
  74. len = 0;
  75. for ( register unsigned int k = 0; k < 2; k++ )
  76. {
  77. for ( register unsigned int q = 0; q < 2; q++ )
  78. {
  79. if ( p[deg3[i]].conn[k] == p[deg3[j]].conn[q] )
  80. {
  81. len++;
  82. }
  83. }
  84. }
  85. }
  86.  
  87. if ( len <= 1 )
  88. {
  89. bunny = true;
  90. break;
  91. }
  92. }
  93.  
  94. if ( bunny )
  95. std::cout << "YES" << std::endl;
  96. else
  97. std::cout << "NO" << std::endl;
  98. }
  99. } break;
  100.  
  101. }
  102.  
  103.  
  104.  
  105.  
  106.  
  107. }
  108.  
  109.  
  110. return 0;
  111. }

Diff to submission s1058

fn.cpp

--- c5.s1058.cteam063.fn.cpp.0.fn.cpp
+++ c5.s1066.cteam063.fn.cpp.0.fn.cpp
@@ -70,4 +70,6 @@
                                                 for ( register unsigned int j = 0; j < deg3.size(); j++ )
                                                 {
+                                                        if (j == i)
+                                                                continue;
                                                         len = 0;
                                                         for ( register unsigned int k = 0; k < 2; k++ )