#NOI2002lxB. 数学家小明
数学家小明
当前没有测试数据。
Description
小明虽然只有三岁,但是很喜欢数字。有一天,他在一张纸上写了n个互不相同的整数,依次编号为1,2,…,n。“其中最大的数是哪一个呢?”小明认真地说。由于小明的数学水平很高,所以他已经掌握了比较两个整数大小的方法。
请你通过比较两个元素的大小,帮助小明求出最大元素的编号。
Format
Input
Output
Samples
input1
output1
Limitation
【交互】
本题是一道交互式题目, 你的程序应当和测试库进行交互,而不得访问任何文件。 测试库提供三个函数:GetN,Compare,Answer,它们的作用和用法如下:
Ø GetN(N)必须首先调用,用它来获得正整数N的值。(1<=N<=100)。
Ø Compare(a,b)的作用是比较两个元素的大小。其中1<=a,b<=N且a≠b。若函数返回1,则表示元素a大于元素b;若函数返回0,则表示元素a小于元素b。
Ø Answer(Ans)用来告诉测试库你的答案。Ans表示最大元素的编号,1<=Ans<=N。调用完本过程后,测试库会终止你的程序,切记你的程序不得自行终止。
【一个成功交互的例子】
函数调用 | 返回值 | 说明 |
---|---|---|
GetN(N) | N=3 | 有3个互不相同的正整数 |
Compare(1,2) | 1 | 元素1大于元素2 |
Compare(3,2) | 0 | 元素3小于元素2 |
Answer(1) | 无 | 最大元素的编号1 |
【对Pascal程序员的提示】
你的程序应当使用下列语句引用测试库:
uses complib;
测试库提供的函数/过程原型为:
procedure GetN(var N:integer);
function Compare(a,b:integer):integer;
procedure Answer(Ans:integer);
【对C/C++程序员的提示】
你应当建立一个工程,把文件complib.o包含进来,然后在程序头加上一行:
#include “complib.h”
测试库提供的函数原型为:
void GetN(int *N);
int Compare(int a, int b);
void Answer(int Ans);
【评分方法】
对于每个测试点,如果你的程序有下列情况之一,得0分:
- 访问了任何文件(包括临时文件)或者自行终止
- 非法调用库函数。
- 让测试库异常退出。
- 提交的答案错误。
否则该测试点你得满分。
【你如何测试自己的程序】
- 在工作目录下建立一个文本文件comp.in,文件第一行包括一个整数N,第二行包括N个互不相同的整数,
- 执行你的程序,此时测试库会产生输出文件comp.log。
- 如果程序正常结束,comp.log仅一行,包含一个整数P,表示你的程序提交的最大元素的编号。如果程序非法退出,则comp.log会记录如下内容:“Abnormal Termination”。
- 在工作目录下执行程序check,会在屏幕上看到你的得分。