kotonoha_pcg@気ままに雑記

kotonoha_pcgが気分次第で様々書き置きます.dlang関係他:http://kotonoha-pcg.hatenadiary.com

PCK 2014 Preliminary Round Q4を今更やってみる

 今更感が非常に漂うのですが,予選Q4を公式解説のソースコードでやりました(まぁ独りで解法を導き出すことができなかったのが理由なんですけどね).

//PCK 2014 Preliminary Round Q4 S_2
#include<iostream>
#include<cstdio>
using namespace std;
int timetbl [24][60];
int main(){
	int i,j,h,m,first;
	for(i=0;i<2;++i){
		scanf("%d",&j);
		for(; j>0;--j){
			scanf("%d%d",&h,&m);
			timetbl[h][m]=1;
		}
	}
	first=1;
	for(i=0;i<24;++i)
	for(j=0;j<60;++j)
		if(timetbl[i][j]){
			if(!first)	printf(" ");
			else first=0;
			printf("%d:%02d",i,j);
		}
		cout<<endl;
		return 0;
}

 mainの外で各時間と分数の配列timetblを作っておいて,jにバスが通る回数を,それでさらにループを回して,先に作ったtimetblへ時間と分に分けて,同時に1を代入する.
そのあとに,1か0かを判定するfirstに1を入れて,時数と分数とでそれぞれ回して,1でないときには空白,違うなら0をして,i,jを指定の形式に従って出力.そのif判定が全部終了したら,改行して次のループへ.・・・というのを繰り返す,という感じでした.