Contest: FEB08 SILVER Division

ANALYSIS MODE
Submit solutions for your own enjoyment.
**********************************************************************
                                铜组题目
**********************************************************************
                            编号11~13,共3题
**********************************************************************

题目 11: 晚餐队列安排 (铜组) [Ionescu Victor and Brian Dean, 2007]

    为了避免餐厅过分拥挤,FJ要求奶牛们分2批就餐。每天晚饭前,奶牛们都
会在餐厅前排队入内,按FJ的设想,所有第2批就餐的奶牛排在队尾,队伍的前
半部分则由设定为第1批就餐的奶牛占据。由于奶牛们不理解FJ的安排,晚饭前
的排队成了一个大麻烦。

    第i头奶牛有一张标明她用餐批次D_i(1 <= D_i <= 2)的卡片。虽然所有N
(1 <= N <= 30,000)头奶牛排成了很整齐的队伍,但谁都看得出来,卡片上的
号码是完全杂乱无章的。

    在若干次混乱的重新排队后,FJ找到了一种简单些的方法:奶牛们不动,他
沿着队伍从头到尾走一遍,把那些他认为排错队的奶牛卡片上的编号改掉,最终
得到一个他想要的每个组中的奶牛都站在一起的队列,例如112222或111122。有
的时候,FJ会把整个队列弄得只有1组奶牛(比方说,1111或222)。

    你也晓得,FJ是个很懒的人。他想知道,如果他想达到目的,那么他最少得
改多少头奶牛卡片上的编号。所有奶牛在FJ改卡片编号的时候,都不会挪位置。

程序名: diningb

输入格式:

* 第1行: 1个整数:N

* 第2..N+1行: 第i+1行是1个整数,为第i头奶牛的用餐批次D_i

输入样例 (diningb.in):

7
2
1
1
1
2
2
1

输入说明:

    一共有7头奶牛,其中有3头奶牛原来被设定为第二批用餐。

输出格式:

* 第1行: 输出1个整数,为FJ最少要改几头奶牛卡片上的编号,才能让编号变成
         他设想中的样子

输出样例 (diningb.out):

2

输出说明:

    FJ选择改第1头和最后1头奶牛卡片上的编号。

**********************************************************************

题目 12: 越野跑 [Jeffrey Wang, 2008]

    为了能在下一次跑步比赛中有好的发挥,贝茜在一条山路上开始了她的训练
。贝茜希望能在每次训练中跑得尽可能远,不过她也知道农场中的一条规定:
奶牛独自进山的时间不得超过M秒(1 <= M <= 10,000,000)。

    整条山路被贝茜划分成T个长度相同的小段(1 <= T <= 100,000),并且,
贝茜用S_i表示第i个小段的路况。S_i为u,f,d这3个字母之一,它们分别表示
第i个小段是上坡、平地,或是下坡。

    贝茜要花U秒(1 <= U <= 100)才能跑完一段上坡路,跑完一段平地的耗时是
F秒(1 <= F <= 100),跑完一段下坡路要花D秒(1 <= D <= 100)。注意,沿山路
原路返回的时候,原本是上坡路的路段变成了下坡路,原本是下坡路的路段变成
了上坡路。

    贝茜想知道,在能按时返回农场的前提下,她最多能在这条山路上跑多远。

程序名: racing

输入格式:

* 第1行: 5个用空格隔开的整数:M,T,U,F,以及D

* 第2..T+1行: 第i+1行为1个字母S_i,描述了第i段山路的路况

输入样例 (racing.in):

13 5 3 2 1
u
f
u
d
f

输入说明:

    贝茜跑步的最大耗时为13秒(这么短...),她跑步的山路一共被划成5段。
贝茜跑完一段上坡路的耗时为3秒,平地为2秒,下坡路为1秒。山路各段的走向
如下图所示:

 _/\_
/

输出格式:

* 第1行: 输出1个整数,为贝茜在按时回到农场的前提下,最多能跑到多远

输出样例 (racing.out):

3

输出说明:

    贝茜跑完山路的前3段,然后返回,总耗时为3 + 2 + 3 + 1 + 2 + 1 = 12
秒,只比她能在外面呆的时限少1秒。如果她跑得更远,就无法按时回到农场。

**********************************************************************

题目 13: 奶牛式乘法 [Jeffrey Wang, 2007]

    做厌了乘法计算题的贝茜,自创了一种新的乘法运算法则。在这套法则里,
A*B等于一个取自A、一个取自B的所有数字对的乘积的和。比方说,123*45等于
1*4 + 1*5 + 2*4 + 2*5 + 3*4 + 3*5 = 54。对于2个给定的数A、B
(1 <= A, B <= 1,000,000,000),你的任务是,用新的乘法法则计算A*B的值。

程序名: cowmult

输入格式:

* 第1行: 2个用空格隔开的整数:A、B

输入样例 (cowmult.in):

123 45

输入说明:

    相乘的2个数分别为123 和 45。

输出格式:

* 第1行: 输出1个整数,即新的乘法法则下A*B的值

输出样例 (cowmult.out):

54

**********************************************************************
Translation by Yan Long

Submit a program or file for grading:    

To run your program with your own test data, enter the program
file name and input file name then click 'Test':
Program File: 
Input File: 
  

Backup a file:              

Nothing is currently saved for grading.
Edit your database record |  Logout  |  Main contest index
See submitted solutions  |  Send message to operations staff
Director is currently online (AIM: RobAtDelos)
This page was generated at 8:11:02 GMT.