AOJ - Problem 0034 : Railway Lines
2つの列車がすれ違う区間を出力する問題です。
同時に2つの列車が出るので、どちらの列車も出発してからすれ違うまでの時間は同じはずです。
また速度が与えられているのでどこですれ違うかわかるはずです。
ただし、ちょうど駅のところですれ違う場合は、両側の区間番号のうち小さいほうの数字を
出力しないといけないので気をつけましょう。
#include <cstdio> using namespace std; int main(){ int k[12], v1, v2, x; double h, d; while( scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", &k[1],&k[2],&k[3],&k[4],&k[5],&k[6],&k[7],&k[8],&k[9],&k[10],&v1,&v2) != EOF ){ x = 0; for(int i=1 ; i<=10 ; i++){ x += k[i]; } h = (double)x/(v1+v2); d = (double)v1*h; printf("x:%d h:%.1f d:%.1f\n", x, h, d); x = 0; for(int i=1 ; i<=10 ; i++){ x += k[i]; if( d <= x ){ printf("%d\n", i); break; } } } }