草体にぼ日記

だらだらと

AGC011A Airport Bus

A - Airport Bus

↓提出コード
Submission #8496532 - AtCoder Grand Contest 011

解法
到達時刻でソートして、到達時刻が早い人からどんどんバスに乗せていく。
このとき、以下の条件を満たす必要がある。
・ バスに乗れる人数は C 人まで。
・人は、k分より多くバスを待つことが出来ない。

↓ WAコード

rep(i,n){
		rider ++;
		if(i==0||newbus){
			active_start = time[i];
			newbus = false;
		}
		active = time[i] - active_start ;
		if(rider == c ){//k分を超えてしまったらダメ 1戻す必要がある
			bus ++ ;
			newbus = true;
			rider = 0;
		}else if( active > k){
			bus ++ ;
			//今いるところからもう一度やらないといけない
			active_start = time[i];
			rider = 1;
		}
}
||
これのACコードと違うところは、
if(rider == c)
else if(active > k)が逆になっているところ。
このコードだと、
例えc人目の人を乗せたとき、最初バスに乗った人(待ち時間が一番長い人)の待ち時間がkを超えてしまっても、乗客がc人になった段階でbusが一台追加されてしまう。