您的位置:首页 > 其它

QAQ & ORZ

2017-08-11 20:28 232 查看

题目描述

QAQ 的好朋友 ORZ,最近在做一个选拔节目的评委,对于每位选手 ORZ 想知道在这个选手以及这位选手前面的的选手中,得分最高和最低的选手的序号分别是多少....

ORZ 找了 QAQ 帮忙,但是 QAQ 最近在追火星情报局....所以你可以帮助 QAQ 解决 ORZ 的问题吗?

输入

第一行一个数
T
 ($1 \leq T \leq 10$),表示
T
组测试数据

第二行一个数
n
 ($1 \leq n \leq 10^5$ ),表示有
n
位选手

接下来
n
行,每行一个数
a
($1 \leq a \leq 10^8$),表示第
i
位选手的得分,打分总是从第一位选手开始

输出

输出从
1 ~ n
位选手中
a[i]
,在
1 ~ i
之间的选手中得分最高和得分最低的选手的序号分别是多少。

如果得分相同则优先输出较小的序号。

样例输入

1
3
1
2
3


样例输出

1 1
2 1
3 1


#include<cstdio>
#define MA 1e9+7
int main()
{
int t,ee,n,a,i,Min,Max;
scanf("%d",&ee);
while(ee--)//在这开始用变量T于后面的变量重名了,提交了几次我都没找到错,怪就怪在样例中第一个是1;这样样例就不会出错;害我找半天
{
int t,k;
t=1,k=1;
Min=MA;
Max=-MA;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
if(a>Max)
{
Max=a;
t=i;
printf("%d ",t);
}
else
printf("%d ",t);
if(a<Min)
{
Min=a;
k=i;
printf("%d\n",k);
}
else
printf("%d\n",k);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: