QAQ 的好朋友 ORZ,最近在做一个选拔节目的评委,对于每位选手 ORZ 想知道在这个选手以及这位选手前面的的选手中,得分最高和最低的选手的序号分别是多少....
ORZ 找了 QAQ 帮忙,但是 QAQ 最近在追火星情报局....所以你可以帮助 QAQ 解决 ORZ 的问题吗?
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
1 #include<stdio.h> 2 struct stu 3 { 4 int id; 5 int score; 6 }a,minn,maxx; 7 int main() 8 { 9 int t,n; 10 scanf("%d",&t); 11 while(t--) 12 { 13 minn.score=100000000+5; 14 maxx.score=-1; 15 scanf("%d",&n); 16 for(int i=1;i<=n;i++) //别想着先一块全部输入,再用个for进行操作.. 17 { 18 scanf("%d",&a.score); 19 if(a.score>maxx.score) //用>而不用>=,分数相同了,较小的id先输出 20 { 21 maxx.score=a.score; 22 maxx.id=i; 23 } 24 if(a.score<minn.score) 25 { 26 minn.score=a.score; 27 minn.id=i; 28 } 29 printf("%d %d\n",maxx.id,minn.id); 30 } 31 32 33 } 34 return 0; 35 }
原文:http://www.cnblogs.com/hss-521/p/7347926.html