貌似这问题比较火,陆陆续续看到不下于三次了,而且变种也比较多。。。直到昨天刷咱学校的UOJ,才反应过来真正的解题思路。可能火星了,但还是自己记录下吧:)
先转一下UOJ(UESTC ONLINE JUDGE)原题:偏僻的小路
Description
在电子科大清水河校区的某个偏僻角落里,有一条东西方向的小路,长L米(由西向东位置为0到L),小路上有N个人从t=0秒开始以相同的恒定速率V米/秒前进(面朝西或面朝东)。这条小路太偏僻了,所有人都想尽快离开这条小路。不幸的是,当两个人相遇时,只有男生会给女生让路(视为两人擦肩而过),男生遇上男生、女生遇上女生时,谁也不肯让路,只好都无奈的掉头往回走。
现在HS很好奇,想知道最后一个人离开小路的时间,以及所有人在小路上走的路程的总和,你能编写程序帮助他吗?
Input
第一行包括3个整数,N,L,V,表示小路上的人数、小路的长度、所有人前进的速率 (N<=100,L<=1000000,V>0)
接下来有N行,每行3个数据
第i行的数据表示第i个人的位置(从0到L的整数)、性别(M或F)、方向(W表示面朝西、E表示面朝东)
当N=L=V=0时,输入结束
Output
对于每组输入,输出一行两个小数,表示最后一个人离开的时间以及所有人在小路上走的路程的总和,用一个空格