您的位置:首页 > 编程语言 > Go语言

CodeForces 560C Gerald's Hexagon【思维】

2016-10-19 22:28 288 查看
Description

Gerald got a very curious hexagon for his birthday. The boy found out that all the angles of the hexagon are equal to 

.
Then he measured the length of its sides, and found that each of them is equal to an integer number of centimeters. There the properties of the hexagon ended and Gerald decided to draw on it.

He painted a few lines, parallel to the sides of the hexagon. The lines split the hexagon into regular triangles with sides of 1 centimeter. Now Gerald wonders how many triangles he has got. But there were so many of them that Gerald lost the track of his
counting. Help the boy count the triangles.

Input

The first and the single line of the input contains 6 space-separated integers a1, a2, a3, a4, a5 anda6 (1 ≤ ai ≤ 1000)
— the lengths of the sides of the hexagons in centimeters in the clockwise order. It is guaranteed that the hexagon with the indicated properties and the exactly such sides exists.

Output

Print a single integer — the number of triangles with the sides of one 1 centimeter, into which the hexagon is split.

Sample Input

Input
1 1 1 1 1 1


Output
6


Input
1 2 1 2 1 2


Output
13


Hint

This is what Gerald's hexagon looks like in the first sample:



And that's what it looks like in the second sample:



/*
CodeForces 560C Gerald's Hexagon
题意:顺时针的给定六边形的六条边,问六边形由多少个边长为1的正三角形构成
类型:思维
分析:正向去数比较苦难,但我们很容易发现的是,边长为a的正三角形,由a*a个
边长为1的正三角形构成,通过这个性质,我们就可以往六边形的三个角进行
补三角形,把六边形补成正三角形,再减去补的三角形个数就是答案
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a,b,c,d,e,f;
scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
int ans=(a+b+c)*(a+b+c)-a*a-c*c-e*e;
printf("%d\n",ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: