码迷,mamicode.com
首页 > 其他好文 > 详细

EOJ Monthly 2019.3A

时间:2019-03-24 21:19:59      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:ext   分组   pos   const   mes   mit   math   ati   bit   

A. 钝角三角形

单点时限: 3.0 sec

内存限制: 512 MB

QQ 小方以前不会判断钝角三角形,现在他会了,所以他急切的想教会你。

如果三角形的三边长分别为 abc (abc),那么当满足 a2+b2<c2 且 a+b>c 的时候,这个三角形就是一个由三边长为 abc 构成的钝角三角形。

单单讲给你听肯定是不够的,为了表现自己,QQ 小方现在要考考你。

现在 QQ 小方会给你一个包含 3n 个整数的集合,分别是 {2,3,4,?3n,3n+1} ,他想让你将这个集合里面的数分成 n 组,保证每个数都被分到其中一个组,并且每个组恰好有 3 个数。当然,你要保证每组的 3 个数作为边长所构成的三角形是一个钝角三角形。

输入格式

输入仅包含一行一个整数 n (1n106)。

输出格式

输出应该包含 n 行,每行三个整数,表示分组。

应该满足题目所给的分组要求。

如果有多个可能的解,输出任意一个解。

如果不存在这样的解,请输出 1

样例

input
1
output
2 3 4
思路:将所给的数字按大小分成三组,第一个数字从第一组选,其他两个数字按奇偶从另外两个数组选。
例:n=4 ,{2,3,4,5} {6,7,8,9} {10,11,12,13}  => {2,7,8} {3,11,12} {4,6,9} {5,10,13}
代码:
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int N=1e4+5;
 4 #define db double
 5 const db eps=1e-8;
 6 
 7 int main()
 8 {
 9     int n;
10     cin>>n;
11     if(n==1) puts("2 3 4");
12     else if(n==2) puts("2 4 5"),puts("3 6 7");
13     else
14     {
15         int m=n+1;
16         if(n&1) printf("%d %d %d\n",n+1,2*n+1,3*n+1),m--;
17         for(int i=2;i<=m;i++){
18             if(i&1) printf("%d %d %d\n",m+3-i,2*n+1+i/2,2*n+(m+1-i/2));
19             else    printf("%d %d %d\n",m+1-i,n+1+i/2,n+1+(m-i/2));
20         }
21     }
22 }

 

EOJ Monthly 2019.3A

标签:ext   分组   pos   const   mes   mit   math   ati   bit   

原文地址:https://www.cnblogs.com/mj-liylho/p/10590371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!