CODEFORCES --- 344A. Magnets

文章描述了一个问题,科学家迈克使用磁铁进行排列,磁极间遵循吸引和排斥原理。编程挑战要求输入磁铁的放置顺序,计算最终形成的磁铁组数。给出的C++代码解决了这个问题。
摘要由CSDN通过智能技术生成

344A. Magnets

疯狂的科学家迈克通过排列一排排多米诺骨牌来娱乐自己。不过,他不需要多米诺骨牌:他使用矩形磁铁代替。每个磁铁都有两个磁极,正极(“加”)和负极(“减”)。如果将两块磁铁放在很近的距离上,那么相似的磁极会相互排斥,而相反的磁极会相互吸引。

迈克首先将一块磁铁水平放在桌子上。在接下来的每个步骤中,Mike 都会在行的右端水平添加一个磁铁。根据迈克将磁铁放在桌子上的方式,它要么被前一个磁铁吸引(形成一组连接在一起的多个磁铁),要么被它排斥(然后迈克将这块磁铁放在离前一个磁铁右边一定距离的地方)。我们假设一个不与其他磁铁相连的唯一磁铁会形成自己的磁铁组。

img

迈克将多个磁铁排成一排。确定磁铁形成的组数。

输入

输入的第一行包含一个整数 n(1 ≤ n ≤ 100000)——磁铁的数量。然后 n 行紧随其后。第 i 行 (1 ≤ in) 包含字符“01”(如果 Mike 将第 i 个磁铁放在“正负”位置)或字符“10”(如果 Mike 将磁铁放在“负加”位置)。

输出

在输出的单行上打印磁铁组数。

例子

输入

6
10
10
10
01
10
10

输出

3

输入

4
01
01
10
10

输出

2

注意

第一个测试用例与图相对应。测试用例有三组,由三个、一个和两个磁铁组成。

第二个测试用例有两组,每组由两个磁铁组成。

解决方法:

// codeforces
// 344A. Magnets

# include<iostream>

using namespace std;

int main()
{
	int n, Gnum = 1, a, b;
	cin >> n;
	cin >> a;
	for(int i = 1; i < n; i++)
	{
		cin >> b;
		if(a != b)
		{
			Gnum++;
		}
		a = b;	
	}
	cout << Gnum;
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值