Pasha and Stick

Description
Pasha has a wooden stick of some positive integer length n. He wants to perform exactly three cuts to get four parts of the stick. Each part must have some positive integer length and the sum of these lengths will obviously be n.

Pasha likes rectangles but hates squares, so he wonders, how many ways are there to split a stick into four parts so that it’s possible to form a rectangle using these parts, but is impossible to form a square.

Your task is to help Pasha and count the number of such ways. Two ways to cut the stick are considered distinct if there exists some integer x, such that the number of parts of length x in the first way differ from the number of parts of length x in the second way.

Input
The first line of the input contains a positive integer n (1 ≤ n ≤ 2·109) — the length of Pasha’s stick.

Output
The output should contain a single integer — the number of ways to split Pasha’s stick into four parts of positive integer length so that it’s possible to make a rectangle by connecting the ends of these parts, but is impossible to form a square.

Examples
Input
6
Output
1
Input
20
Output
4
Note
There is only one way to divide the stick in the first sample {1, 1, 2, 2}.

Four ways to divide the stick in the second sample are {1, 1, 9, 9}, {2, 2, 8, 8}, {3, 3, 7, 7} and {4, 4, 6, 6}. Note that {5, 5, 5, 5} doesn’t work.
C语言版本一

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	long long n;
	scanf("%lld",&n);
	int i;
	if(n%2==0){
			if(n%4==0)	printf("%lld\n",n/4-1);
			else	printf("%lld\n",n/4);
	}else{
		printf("%lld\n",0);
	}
	return 0;
}

C语言版本二

#include<stdio.h>
int main()
{
    long long n;
    scanf("%lld",&n);
    if(n%2!=0)//注意如果是奇数是不可能组成长方形的,只有0种方案,这个要单独拿出来考虑。
        printf("0\n");
    else
    {
        if(n/2%2==1)
            printf("%lld\n",n/4);
        else
            printf("%lld\n",n/4-1);
    }
    return 0;
}
全部评论

相关推荐

鼠鼠第一次实习,啥也不懂一直是自己一个人吃的饭,不会做工作老是被嫌弃,大人的世界是这样的吗?
我是星星我会发亮:好的mt有两种,一种愿意教你的,一种几乎什么活都不给你派让你很闲允许你做自己事情的
实习吐槽大会
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
05-05 21:45
已编辑
广州大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务