尽管科学界已经深入探究了鸡为什么过马路这一问题,令人惊讶的是,关于牛过马路的的研究文献却很少发表。
农夫约翰很清楚这一问题的重要性,当一所当地的大学联系他,要求他协助进行一项关于奶牛为什么要过马路的科学研究时,他非常激动并热心的表示愿意帮忙。
作为研究的一部分,约翰被要求记录下他的每头奶牛穿过马路的次数。
他仔细记录了奶牛的位置数据,在一天时间里,他进行了 NN 次观察,每次观察都会记录一头牛的 ID (约翰共有 1010 头牛,ID 从 11 到 1010)以及牛在路的哪一边。
根据约翰记录的数据,请帮助他计算可以确定的奶牛穿过马路的次数。
当连续观察到一头奶牛在道路的两侧时,就可以确定它穿过了一次马路。
输入格式
第一行包含整数 NN。
接下来 NN 行,用来描述观察结果,首先包含一个整数表示观察奶牛的 ID,然后包含一个整数 00 或 11,00 表示它在马路一边,11 表示它在马路另一边。
输出格式
输出可以确认发生的穿过马路的次数。
数据范围
1≤N≤1001≤N≤100,
输入样例:
8
3 1
3 0
6 0
2 1
4 1
3 0
4 0
3 1
输出样例:
3
样例解释
在此样例中,33 号奶牛穿过马路两次,先 1→01→0,然后 0→10→1。
44 号奶牛穿过马路一次 1→01→0。
22 号和 66 号奶牛没有穿过马路。
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 15;
int a[N],sum;
int main()
{
int n;
cin >> n;
memset(a, -1, sizeof(a));
while(n--)
{
int x,y;
cin >> x >> y;
if(a[x] == -1) a[x] = y; // 如果第一次观察,就直接赋值
else if(a[x] != y ) sum++, a[x] = y; // 和上一次观察得不一样,就算过马路了
}
cout << sum <<endl;
return 0;
}