トップ 一覧 Farm 検索 ヘルプ RSS ログイン

2020db1.cppの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
 #include <stdio.h>
 int main(void)
 {
	int d[101];
	
	while(1){
		int m, n, p;
		scanf("%d %d %d", &m, &n, &p);
		if(m==0 && n==0 && p==0) break;
		
		//感染者が出たかどうかのフラグ
		int flag=0;
		
		// 感染したかどうかのフラグをクリア
		for(int i=1; i<=m; i++){
			d[i]=0;
		}
		//pは感染
		d[p]=1;
		
		int a, b;
		for(int i=0; i<n; i++){
			scanf("%d %d", &a, &b);
			
			// 時間順なので、感染者が出たらflag=1とする
			if(a==p || b==p){
				flag=1;
			}
			
			// 感染者が出ていて
			if(flag){
				// データの一人目感染してたら
				if(d[a]==1){
					d[b]=1;//二人目も感染
				}
				// データの二人目感染してたら
				if(d[b]==1){
					d[a]=1;//一人目も感染
				}
			}
		}
		//感染者数カウント
		int count=0;
		for(int i=1; i<=m; i++){
			//printf("%d", d[i]);
			if(d[i]==1){
				//printf("%d ", i);
				count++;
			}
		}
		//printf("\n");
		printf("%d\n", count);
	}
	
	return 0;
 }