zoukankan      html  css  js  c++  java
  • EOJ Monthly 2019.3 A

    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+1,2*n+1,3*n+1),m--;
    17         for(int i=2;i<=m;i++){
    18             if(i&1) printf("%d %d %d
    ",m+3-i,2*n+1+i/2,2*n+(m+1-i/2));
    19             else    printf("%d %d %d
    ",m+1-i,n+1+i/2,n+1+(m-i/2));
    20         }
    21     }
    22 }
  • 相关阅读:
    Xftp6 和 Xshell 6 下载与安装使用
    Oracle 11 安装教程(桌面类)
    Oracle 11 安装 提示环境不满足最低要求解决方案
    FICO年终完全手册
    SAP月结操作讲解
    ABAP-FI常用BAPI
    FB01与F-02的区别(转载)
    SAP应用创新-维护控制表、视图统一路径
    FI 业务
    SAP 财务模块 FI-TV 差旅管理
  • 原文地址:https://www.cnblogs.com/mj-liylho/p/10590371.html
Copyright © 2011-2022 走看看