已知所有队伍的通过题数、罚时,并且保证给出的顺序,符合 ACM 比赛最终榜单:按题数降序排列,当题数相同时,按照罚时升序排序。
贝贝想知道,若将相同题数、相同罚时的队伍归为一类,最终共有多少类队伍?
输入样例:
5
13 960
12 950
11 1310
11 1310
0 0
输出样例:
4
思路:1.题意:通过题数和罚时任意一个数据不同则为不同的两类
2.按序排列,只需找不同然后累计
3.只比较相邻
#include <stdio.h>
int main()
{
int n,x1,y1,x2,y2,c=1;; //c应初始化为1,因为就算后面没有不同的也是一种
scanf("%d",&n);
scanf("%d%d",&x1,&y1); //先输入第一对数(用于比较后一对数)
for(int i=1;i<n;i++) //依次输入剩下的几对数
{
scanf("%d%d",&x2,&y2);
if(x1!=x2||y1!=y2) //每输入一对就与前一对比较判断是否为同一类
{
c++;
}
x1=x2; //每判断一对之后就将这对数赋值为x1和y1,用于与后一对比较(即只需比较相邻的)
y1=y2;
}
printf("%d",c);
return 0;
}
有其它好方法的小伙伴欢迎分享噢😀