- #include <stdio.h> 
- #include <stdlib.h> 
-   
- #define N_MAX 100 
-   
-   
- int main( void ) 
- { 
-   int N;                       // 点の数 
-   int M;                       // 辺の数 
-   int adjacent[N_MAX][N_MAX];  // 隣接行列  (N_MAX × N_MAXの配列) 
-   FILE *fp;                    // ファイルポインタ 
-   
-   int i, j, v1, v2; 
-   
-   // 配列の初期化 
-   for ( i=0; i<N_MAX; i++ ) 
-     for ( j=0; j<N_MAX; j++ ) 
-       adjacent[i][j] = 0; 
-   
-   
-   // graph1.txtから辺行列を読み込む 
-   
-   // ファイルオープン 
-   if ( (fp = fopen( "graph1.txt", "r" )) == NULL ) { 
-     printf( "ファイルが開けません.\n" ); 
-     exit( 1 ); 
-   } 
-   
-   // 点の数を読み込む 
-   // fscanf( ファイルポインタ, "書式指定子", 変数のアドレス ); 
-   fscanf( fp, "%d", &N ); 
-   
-   if ( N >= N_MAX ) { 
-     fprintf( stderr, "配列容量オーバーです\n" ); 
-     exit( 1 ); 
-   } 
-   
-   printf( "点の数: %d\n", N ); 
-   
-   // 辺行列を読み込む 
-   M = 0; 
-   while( fscanf( fp, "%d %d", &v1, &v2 ) != EOF ) { 
-     M++; 
-   
-     // 辺がある場合には隣接行列を1にする 
-     adjacent[v1][v2] = adjacent[v2][v1] = 1; 
-   } 
-   
-   printf( "辺の数: %d\n", M ); 
-   
-   for ( i=0; i<N; i++ ) 
-     for ( j=i; j<N; j++ ) 
-       if ( adjacent[i][j] ) 
-     printf( "%d - %d\n", i, j ); 
-   
-   // ファイルポインタのクローズ 
-   fclose( fp ); 
-   
-   return 0; 
- } 
-   
				I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgTl9NQVggMTAwCgoKaW50IG1haW4oIHZvaWQgKQp7CiAgaW50IE47ICAgICAgICAgICAgICAgICAgICAgICAvLyDngrnjga7mlbAKICBpbnQgTTsgICAgICAgICAgICAgICAgICAgICAgIC8vIOi+uuOBruaVsAogIGludCBhZGphY2VudFtOX01BWF1bTl9NQVhdOyAgLy8g6Zqj5o6l6KGM5YiXICAoTl9NQVggw5cgTl9NQVjjga7phY3liJcpCiAgRklMRSAqZnA7ICAgICAgICAgICAgICAgICAgICAvLyDjg5XjgqHjgqTjg6vjg53jgqTjg7Pjgr8KCiAgaW50IGksIGosIHYxLCB2MjsKCiAgLy8g6YWN5YiX44Gu5Yid5pyf5YyWCiAgZm9yICggaT0wOyBpPE5fTUFYOyBpKysgKQogICAgZm9yICggaj0wOyBqPE5fTUFYOyBqKysgKQogICAgICBhZGphY2VudFtpXVtqXSA9IDA7CgoKICAvLyBncmFwaDEudHh044GL44KJ6L666KGM5YiX44KS6Kqt44G/6L6844KACgogIC8vIOODleOCoeOCpOODq+OCquODvOODl+ODswogIGlmICggKGZwID0gZm9wZW4oICJncmFwaDEudHh0IiwgInIiICkpID09IE5VTEwgKSB7CiAgICBwcmludGYoICLjg5XjgqHjgqTjg6vjgYzplovjgZHjgb7jgZvjgpPvvI5cbiIgKTsKICAgIGV4aXQoIDEgKTsKICB9CgogIC8vIOeCueOBruaVsOOCkuiqreOBv+i+vOOCgAogIC8vIGZzY2FuZigg44OV44Kh44Kk44Or44Od44Kk44Oz44K/LCAi5pu45byP5oyH5a6a5a2QIiwg5aSJ5pWw44Gu44Ki44OJ44Os44K5ICk7CiAgZnNjYW5mKCBmcCwgIiVkIiwgJk4gKTsKCiAgaWYgKCBOID49IE5fTUFYICkgewogICAgZnByaW50Ziggc3RkZXJyLCAi6YWN5YiX5a656YeP44Kq44O844OQ44O844Gn44GZXG4iICk7CiAgICBleGl0KCAxICk7CiAgfQoKICBwcmludGYoICLngrnjga7mlbA6ICVkXG4iLCBOICk7CgogIC8vIOi+uuihjOWIl+OCkuiqreOBv+i+vOOCgAogIE0gPSAwOwogIHdoaWxlKCBmc2NhbmYoIGZwLCAiJWQgJWQiLCAmdjEsICZ2MiApICE9IEVPRiApIHsKICAgIE0rKzsKCiAgICAvLyDovrrjgYzjgYLjgovloLTlkIjjgavjga/pmqPmjqXooYzliJfjgpIx44Gr44GZ44KLCiAgICBhZGphY2VudFt2MV1bdjJdID0gYWRqYWNlbnRbdjJdW3YxXSA9IDE7CiAgfQoKICBwcmludGYoICLovrrjga7mlbA6ICVkXG4iLCBNICk7CgogIGZvciAoIGk9MDsgaTxOOyBpKysgKQogICAgZm9yICggaj1pOyBqPE47IGorKyApCiAgICAgIGlmICggYWRqYWNlbnRbaV1bal0gKQogICAgcHJpbnRmKCAiJWQgLSAlZFxuIiwgaSwgaiApOwoKICAvLyDjg5XjgqHjgqTjg6vjg53jgqTjg7Pjgr/jga7jgq/jg63jg7zjgroKICBmY2xvc2UoIGZwICk7CgogIHJldHVybiAwOwp9Cg==