犬为什么过马路(C++)

题目描述
    猫为什么过马路是一个历史悠久的问题,并且得到了科学界极大的重视。 令人惊讶的是,关于犬过马路的研究文献却很少。 犬国军政大臣HSQ意识到了问题的重要,于是他与犬国大学合作研究这一问题。HSQ的工作就是记录犬穿过马路的次数,他认真的记录了关于犬的位置的数据,并在一天内进行了一系列观察。它记录了每只犬的编号和特在马路的哪一侧(编号是个整数且小于等于10,因为犬国只有10只犬) 根据农民约翰记录的数据,请帮助他计算确定的犬过马路的次数。如果连续看到一只犬出现在道路的两侧,就会确认过了一次马路.
输入格式
    第一行输入包含观察次数N,一个最多为100的正整数。
    接下来N行每一行包含一个观察结果,由两个数构成,第一个数是犬编号,第二个数是0或1,表示位置(道路一侧为0,另一侧为1)。
输出格式
    一个数据,输出过马路次数。。
样例数据
input
8
3 1
3 0
6 0
2 1
4 1
3 0
4 0
3 1
output
3
思路
    数组初值-1,然后读入N,循环,读入两个数a、b,若数组a的值为-1,赋值b,不等于-1且b不等于数组a,赋值、累加。
程序如下
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[11]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},n,s=0,b,c;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>b>>c;
if(a[b]==-1) a[b]=c;
if(a[b]!=-1 && a[b]!=c){
a[b]=c;
s++;
}
}
cout<<s<<endl;
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值