#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==