Source code for submission s918

Go to diff to previous submission

fn.cpp

  1. #include <cstdio>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. void printarr( vector<int> arr )
  6. {
  7. /*
  8. for( int i = 0; i < arr.size(); i++ )
  9. printf( "%d ", arr[i] );
  10. printf( "\n" );
  11. */
  12. }
  13.  
  14. int main()
  15. {
  16. int n = 0, m = 0;
  17. while( scanf("%d %d\n", &n, &m) == 2 )
  18. {
  19. vector<int> arr[n+1];
  20.  
  21. for( int i = 0; i < n+1; i++ ) arr[i] = vector<int>(0);
  22.  
  23. for( int i = 0; i < m; i++ )
  24. {
  25. int a = 0, b = 0;
  26.  
  27. scanf( "%d %d\n", &a,&b );
  28. arr[a].push_back(b);
  29. arr[b].push_back(a);
  30. }
  31.  
  32.  
  33. bool yes = false;
  34. for( int i = 0; i < n+1; i++ )
  35. {
  36. //printarr( arr[i] );
  37.  
  38. if( arr[i].size() == 4 )
  39. {
  40. //printf( "\tarr[%d] = 4\n", i );
  41.  
  42. int ok = 0;
  43. for( int j = 0; j < 4; j++ )
  44. if( arr[ arr[i][j] ].size() == 1 )
  45. ok++;
  46.  
  47. //printf( "\tok = %d\n", ok );
  48. if( ok == 4 )
  49. {
  50. printf( "YES\n" );
  51. yes = true;
  52. break;
  53. }
  54. }
  55. }
  56.  
  57. if( !yes ) printf( "NO\n" );
  58. }
  59.  
  60. return 0;
  61. }
  62.  

Diff to submission s869

fn.cpp

--- c5.s869.cteam031.fn.cpp.0.fn.cpp
+++ c5.s918.cteam031.fn.cpp.0.fn.cpp
@@ -1,39 +1,59 @@
 #include <cstdio>
+#include <vector>
+using namespace std;
 
-void printarr( int * arr, int len )
+void printarr( vector<int> arr )
 {
-        for( int i = 0; i < len; i++ )
+        /*
+        for( int i = 0; i < arr.size(); i++ )
                 printf( "%d ", arr[i] );
         printf( "\n" );
+        */
 }
 
 int main()
 {
-        int n,m;
+        int n = 0, m = 0;
         while( scanf("%d %d\n", &n, &m) == 2 )
         {
-                bool yes = false;
-                int arr[n+1];
-                for( int i = 0; i < n+1; i++ ) arr[i] = 0;
+                vector<int> arr[n+1];
+                
+                for( int i = 0; i < n+1; i++ ) arr[i] = vector<int>(0);
                         
                 for( int i = 0; i < m; i++ )
                 {
-                        int a, b;
+                        int a = 0, b = 0;
                         
                         scanf( "%d %d\n", &a,&b );
-                        arr[a] ++;
-                        arr[b] ++;
-                        
-                        //printarr( arr, n+1 );
+                        arr[a].push_back(b);
+                        arr[b].push_back(a);
+                }
+                
 
-                        if( !yes && (arr[a] == 4 || arr[b] == 4) )
+                bool yes = false;
+                for( int i = 0; i < n+1; i++ )
+                {
+                        //printarr( arr[i] );
+                
+                        if( arr[i].size() == 4 )
                         {
-                                yes = true;
-                                printf( "YES\n" );
+                                //printf( "\tarr[%d] = 4\n", i );
+                                
+                                int ok = 0;
+                                for( int j = 0; j < 4; j++ )
+                                        if( arr[ arr[i][j] ].size() == 1 )
+                                                ok++;
+                                
+                                //printf( "\tok = %d\n", ok );
+                                if( ok == 4 )
+                                {
+                                        printf( "YES\n" );
+                                        yes = true;
+                                        break;
+                                }
                         }
                 }
                 
                 if( !yes ) printf( "NO\n" );
-                
         }