#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分:

  • 访问了任何文件(包括临时文件)或者自行终止
  • 非法调用库函数。
  • 让测试库异常退出。
  • 提交的答案错误。

否则该测试点你得满分。

【你如何测试自己的程序】

  1. 在工作目录下建立一个文本文件comp.in,文件第一行包括一个整数N,第二行包括N个互不相同的整数,
  2. 执行你的程序,此时测试库会产生输出文件comp.log。
  3. 如果程序正常结束,comp.log仅一行,包含一个整数P,表示你的程序提交的最大元素的编号。如果程序非法退出,则comp.log会记录如下内容:“Abnormal Termination”。
  4. 在工作目录下执行程序check,会在屏幕上看到你的得分。