pascal题目,高手快来!要有解释!

来源:百度知道 编辑:UC知道 时间:2024/06/04 23:17:18
取数游戏(game2.pas)
问题描述
考虑一个由两个玩家玩的游戏。游戏开始前给定一串排成一排的N个数字。两位玩家轮流从这一串数中的最左端或者最右端取出一个数。当所有数字都被取完后,游戏结束。此时,两位玩家各自的得分将是他所有取出的数的和。得分较高的玩家获胜。
假设你是先取者。请编写程序制定一个游戏的最佳策略。最佳策略是指这样一种数字取法,它能在最坏的情况(后取者的策略对自己最不利的情况)下得到最高的得分。

输入格式
从文件game2.in中读入数据。
数据的第一行是一个正整数N,输入数据保证1<=N<=100。
第二行从左至右给出了游戏初始时的N个正整数。这些正整数保证不超过200。

输出格式
在game2.out中输出两个用空格隔开的正整数。他们分别表示游戏的先取者在最坏情况下最高的得分和此时后取者的得分。

样例输入
6
4 7 2 9 5 2

样例输出
18 11

时间限制
各测试点1秒

内存限制
你的程序将被分配10MB的运行空间

在一本书里有:
http://www.amazon.cn/mn/detailApp?qid=1247212411&ref=SR&sr=13-8&uid=480-6145584-4185925&prodid=zjbk068747

全国青少年信息学奥林匹克联赛培训教材(中学高级本)(全国青少年信息学奥林匹克竞赛培训丛书)
买来看看吧
不错的
里面有一题例题就是这个

做了一个超夸张的,结果程序出错,只过了一组数据。
楼上的说书里有啊,我找一下哦。
算了,给你一个测试批处理吧(自己改的,0-9组测试数据你应该有吧,谷应该给了)
---------------------------
@echo 集训队测试程式 Game2(Pascal/C/CPP)
@echo off
if "%1"=="" goto loop
copy game2%1.in game2.in >nul
echo game2 Test
echo Data %1
time<enter
game2
time<enter
fc game2.out game2%1.out
del game2.in
del game2.out
pause
goto end
:loop
for %%i in (0 1 2 3 4 5 6 7 8 9) do call %0 %%i
:end