George and Accommodation 【CodeForces - 467A】

George and Accommodation问题解析

题目

George has recently entered the BSUCP (Berland State University for Cool Programmers). George has a friend Alex who has also entered the university. Now they are moving into a dormitory.
George and Alex want to live in the same room. The dormitory has n rooms in total. At the moment the i-th room has pi people living in it and the room can accommodate qi people in total (pi ≤ qi). Your task is to count how many rooms has free place for both George and Alex.

Time limitMemory limitSourceTagEditoria
1000 ms262144 kBCodeforces Round #267 (Div. 2)simplementation *800Announcement

Input

The first line contains a single integer n (1 ≤ n ≤ 100) — the number of rooms.
The i-th of the next n lines contains two integers pi and qi (0 ≤ pi ≤ qi ≤ 100) — the number of people who already live in the i-th room and the room’s capacity.

Output

Print a single integer — the number of rooms where George and Alex can move in.

Example

inputoutput
3 1 1 2 2 3 30
3 1 10 0 10 10 102
问题链接:CodeForces - 467A

问提描述

乔治和艾利克斯要住进同一个宿舍,输入数据第一行为宿舍总数n,而后会有n行的输入,每一行有两个数据分别是宿舍中已经入住的人数和宿舍可以入住的人数,得到所有数据后计算有几个宿舍可供两个人入住。

问题分析

首先获得有几个宿舍的数据,然后新建一个长度为n*2的数组用于储存宿舍人数情况,最后利用一个计数器记录那些宿舍的空位大于等于2,输出计数器的值即可。

AC通过的C++语言程序代码如下:

#include<iostream>
using namespace std;
int main()
{
	int n;
	int counter = 0;
	cin >> n;
	int *dom = new int[n*2];
	for (int i = 0; i < n * 2; i++)
		cin >> dom[i];
	for (int i = 0; i < n * 2; i += 2)
		if (dom[i + 1] - dom[i] >= 2)
			counter++;
	cout << counter;
}

代码分析

一开始声明了两个变量,n是宿舍总数,counter是计数器,然后动态创建数组dom来储存人数情况

    int n;  //宿舍总数
	int counter = 0;  //计数器
	cin >> n;  //获得宿舍总数
	int *dom = new int[n*2];  //根据宿舍总数创建数组

然后就是输入宿舍的人数情况

for (int i = 0; i < n * 2; i++)
		cin >> dom[i];

然后就会得到一个储存着:已有,总数,已有,总数…的数组

之后就计算有几个宿舍有两个以上空位

for (int i = 0; i < n * 2; i += 2)
		if (dom[i + 1] - dom[i] >= 2)
			counter++;

这里利用之前输入数据的格式,每两个数据为一组进行一次循环,遇到可入住数减去已入住数大于2的,计数器就加1,最后输出计数器的值即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值