CodeForces - 344A

Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u

Submit Status

Description

Mad scientist Mike entertains himself by arranging rows of dominoes. He doesn't need dominoes, though: he uses rectangular magnets instead. Each magnet has two poles, positive (a "plus") and negative (a "minus"). If two magnets are put together at a close
distance, then the like poles will repel each other and the opposite poles will attract each other.

Mike starts by laying one magnet horizontally on the table. During each following step Mike adds one more magnet horizontally to the right end of the row. Depending on how Mike puts the magnet on the table, it is either attracted to the previous one (forming
a group of multiple magnets linked together) or repelled by it (then Mike lays this magnet at some distance to the right from the previous one). We assume that a sole magnet not linked to others forms a group of its own.

Mike arranged multiple magnets in a row. Determine the number of groups that the magnets formed.

Input

The first line of the input contains an integer n (1 ≤ n ≤ 100000) — the number of magnets. Then n lines
follow. The i-th line (1 ≤ i ≤ n) contains either characters "01", if Mike put
the i-th magnet in the "plus-minus" position, or characters "10", if Mike put the magnet in the "minus-plus" position.

Output

On the single line of the output print the number of groups of magnets.

Sample Input

Input
6
10
10
10
01
10
10
Output
3
Input
4
01
01
10
10
Output
2

Hint

The first testcase corresponds to the figure. The testcase has three groups consisting of three, one and two magnets.

The second testcase has two groups, each consisting of two

题意:依照顺序给你一个个磁铁,以及他们放置的位置:

比方说输入了01,10,01。10,10

则形成的排放为01 10 01 10 10。当中同性相斥,异性相吸,相吸的会连在一起形成一个快。如此。题目要求出有多少个块。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
#define lson rt << 1, l, mid
#define rson rt << 1|1, mid + 1, r
#define root 1, 1, N
const int MAXN = 5e4 + 5;
char op[2][5];
int n;
int main() {
scanf("%d", &n);
int cnt = 0;
for(int i = 0 ; i < n ; i ++) {
scanf("%s", op[0]);
if(i == 0) {
cnt ++;
strcpy(op[1], op[0]);
continue;
}
bool flag = true;
if(op[1][0] - op[0][1] != 0) {
flag = false;
}
strcpy(op[1], op[0]);
if(flag) cnt ++;
}
printf("%d\n", cnt);
return 0;
}

最新文章

  1. MySQL 子查询与连接操作笔记
  2. Java的多线程机制系列:(二)缓存一致性和CAS
  3. UIView动画
  4. Bootstrap_进度条
  5. C++学习基础二——指针与引用的区别
  6. webpack使用webpack-dev-middleware进行热重载
  7. (转)基于即时通信和LBS技术的位置感知服务(三):搭建Openfire服务器+测试2款IM客户端
  8. Linux中的终端、控制台、tty、pty等概念
  9. POJ 1404 I-Keyboard (DP)
  10. C#调用java接口报“Fault occurred while processing”异常问题
  11. 使用Volley StringRequest Get的方式进行发票查询操作
  12. [LeetCode] Decode String 题解
  13. Linux的nginx环境的vue 部署
  14. 初学node.js有感二
  15. 【SpringCloud】HystrixCommand的threadPoolKey默认值及线程池初始化
  16. ssh: connect to host github.com port 22: Connection timed out
  17. Java singleton 一例
  18. Visual Studio 2008 调试运行Bug记录
  19. 【DIV+CSS】代码作业练习DIV+CSS太极阴阳图
  20. OSI七层与tcp/ip四层

热门文章

  1. PCB MongoDB数据库 备份与还原
  2. IPv6系列-初学者的10个常见困扰
  3. swift-delegate(代理)或者block传值
  4. JavaScript 浏览器事件解读
  5. 我和CSDN的那些事
  6. VMware中linux安装jdk
  7. js-学习方法
  8. 时序分析:串匹配—Brute-Force算法
  9. BSGS-BabyStepGiantStep算法+拓展
  10. monad - the Category hierachy