Gerald's Hexagon

Gerald‘s Hexagon

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 and a6 (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 test(s)

input

1 1 1 1 1 1

output

6

input

1 2 1 2 1 2

output

13

地址:http://codeforces.com/contest/560/problem/C

思路:额,这道题想了挺久,刚开始,想画图找规律,分层次找了半天,得出一些特殊情况的规律,但是没有什么卵用。    然后想到了面积,想到的有点迟,然后就敲代码了。结果对6边形的理解有错误,最后错了,于是乎,百度了。    数学太差没办法。。感觉上有两种做法:

1: 通过面积求    直接求面积:http://blog.csdn.net/winddreams/article/details/47016541    间接求面积:http://blog.csdn.net/crescent__moon/article/details/47017283我的代码是直接求面积
#include <cstdio>

using namespace std;

int main(){

        int edge[6];
        int t_area = 1;
        int h_area;
        int cnt;

        while(scanf("%d", &edge[0]) != EOF){

                for(int i = 1; i < 6; i ++){
                        scanf("%d", &edge[i]);
                }

                h_area = (edge[0] + edge[3]) * (edge[1] + edge[2]) + edge[1] * edge[2] + edge[4] * edge[5];
                cnt = h_area / t_area;
                printf("%d\n", cnt);
        }

        return 0;
}
第2种应该就是找规律了:  时间比较晚了第2天再想想 然后再补。                                                                              2015-07-27  23:47:39

Gerald's Hexagon

时间: 2024-10-15 22:43:56

Gerald's Hexagon的相关文章

codeforces 560 C Gerald&#39;s Hexagon

神精度--------这都能过,随便算就好了,根本不用担心 就是把六边形补全成三角形,然后去掉补的三个三角形,然后面积除以边长1的三角形的面积即可.... #include<map> #include<string> #include<cstring> #include<cstdio> #include<cstdlib> #include<cmath> #include<queue> #include<vector&

codeforces 559A(Gerald&#39;s Hexagon)

Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u 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

Codeforces 559A Gerald&#39;s Hexagon 数三角形

题意:按顺序给出一个各内角均为120°的六边形的六条边长,求该六边形能分解成多少个边长为1的单位三角形. 把单位三角形面积看做1,实际上就是求六边形面积.随便找六边形的三条互相不相邻的边,分别以这三条边为基础向外扩展一个等边三角形,即可将原六边形补成一个大等边三角形,然后用大等边三角形面积减去补上的3个小等边三角形面积就是原来六边形的面积.而等边三角形面积很简单.就是边长的平方(实际就是边长为n的等边三角形能分解成n^2个边长为1的单位三角形,画个图就能理解了). #include <cstdi

Codeforces Round #313 (Div. 2) Gerald&#39;s Hexagon

给出一个六边形六条边的长度(六边形的每个角为120度),求出这个六边形中边长为1的等边三角形有多少个 由于每个角都是120度并且上下两条边是平行的,因此我们可以补出一个矩形,再减掉周边四个角的面积,用剩下面积除以每个小三角形的面积. #include<cstdio> using namespace std; double a,b,c,d,e,f; int main() { <span style="white-space:pre"> </span>s

Codeforces Round #313 (Div. 2) C Gerald&#39;s Hexagon 计数

// Codeforces Round #313 (Div. 2) C Gerald's Hexagon // 计数 // 关键是平行于a1的长度为1的有多少条,中间的这些*2,再加上a1 // 和a4,就是三角形的总和 // 还是挺简单的,注意递增的初始值,和变化,就ac了 #include <cstdio> #include <algorithm> #include <iostream> #include <cstring> using namespac

Codeforces 559A Gerald&amp;#39;s Hexagon 数三角形

题意:按顺序给出一个各内角均为120°的六边形的六条边长,求该六边形能分解成多少个边长为1的单位三角形. 把单位三角形面积看做1,实际上就是求六边形面积.随便找六边形的三条互相不相邻的边,分别以这三条边为基础向外扩展一个等边三角形.就可以将原六边形补成一个大等边三角形,然后用大等边三角形面积减去补上的3个小等边三角形面积就是原来六边形的面积. 而等边三角形面积非常easy.就是边长的平方(实际就是边长为n的等边三角形能分解成n^2个边长为1的单位三角形,画个图就能理解了). #include <

Codeforces Round #313 (Div. 2) C. Geralds Hexagon(补大三角.cpp

 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.

Codeforces Round #313 (Div. 2) C. Geralds Hexagon

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. Th

第六周O题(等边三角形个数)

O - 计数 Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u 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 it