cf 760A Petr and a calendar

链接:http://codeforces.com/problemset/problem/760/A

A. Petr and a calendar
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Petr wants to make a calendar for current month. For this purpose he draws a table in which columns correspond to weeks (a week is seven consequent days from Monday to Sunday), rows correspond to weekdays, and cells contain dates. For example, a calendar for January 2017 should look like on the picture:

Petr wants to know how many columns his table should have given the month and the weekday of the first date of that month? Assume that the year is non-leap.

Input

The only line contain two integers m and d (1 ≤ m ≤ 12, 1 ≤ d ≤ 7) — the number of month (January is the first month, December is the twelfth) and the weekday of the first date of this month (1 is Monday, 7 is Sunday).

Output

Print single integer: the number of columns the table should have.

Examples
Input
1 7
Output
6
Input
1 1
Output
5
Input
11 6
Output
5
Note

The first example corresponds to the January 2017 shown on the picture in the statements.

In the second example 1-st January is Monday, so the whole month fits into 5 columns.

In the third example 1-st November is Saturday and 5 columns is enough.

题意:

给出m(月份)和d(这个月1号的星期数),求这个月有几个星期,不满一星期的也算

水题

求星期天的个数,如果最后还有余数,星期数加一

代码:

#define _CRT_SBCURE_MO_DEPRECATE    
#include<iostream>    
#include<stdlib.h>    
#include<stdio.h>    
#include<cmath>    
#include<algorithm>    
#include<string>    
#include<string.h>    
#include<set>    
#include<queue>    
#include<stack>    
#include<functional>     
using namespace std;
const int maxn = 10000000 + 10;
const int INF = 0x3f3f3f3f;
typedef long long ll;

int d, m;
int day[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
int sum;

int main()
{
	while (scanf("%d %d", &d, &m) != EOF) {
		sum = 0;
		int k = m;
		if (k == 7) {
			sum = 1;
			k = 1;
		}
		for (int i = 2; i <= day[d - 1]; i++) {
			k++;
			k = k % 7;
			if (k == 0) sum++;
			if (i == day[d - 1] && k != 0)sum++;
		}
		printf("%d\n", sum);
	}
	
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值