zoukankan      html  css  js  c++  java
  • A. Candy Bags

    A. Candy Bags
     
    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    Gerald has n younger brothers and their number happens to be even. One day he bought n2 candy bags. One bag has one candy, one bag has two candies, one bag has three candies and so on. In fact, for each integer k from 1 to n2 he has exactly one bag with kcandies.

    Help him give n bags of candies to each brother so that all brothers got the same number of candies.

    Input

    The single line contains a single integer n (n is even, 2 ≤ n ≤ 100) — the number of Gerald's brothers.

    Output

    Let's assume that Gerald indexes his brothers with numbers from 1 to n. You need to print n lines, on the i-th line print n integers — the numbers of candies in the bags for the i-th brother. Naturally, all these numbers should be distinct and be within limits from 1 to n2. You can print the numbers in the lines in any order.

    It is guaranteed that the solution exists at the given limits.

    Sample test(s)
    input
    2
    output
    1 4
    2 3
    Note

    The sample shows Gerald's actions if he has two brothers. In this case, his bags contain 1, 2, 3 and 4 candies. He can give the bags with 1 and 4 candies to one brother and the bags with 2 and 3 to the other brother.

    输入2时:

    输出:(每行的和为 5 )

    1  4

    2  3

    输入4时:

    输出:(每行的和为 34 )

    1  16  2  15

    3  14  4  13

    5  12  6  11

    7  10  8  9

    输入6时:

    输出:(每行的和为 101 )

    1  36  2  35  3  34

    4  33  5  32  6  31

    7  30  8  29  9  28

    10  27  11  26  12  25

    13  24  14  23  15  22

    16  21  17  20  18  19

    相信你已经看出规律来了,代码如下:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    
    using namespace std;
    
    
    int main() {
    
        //freopen("input.txt","r",stdin);
        //freopen("output.txt","w",stdout);
    
        int n;
        while(~scanf("%d",&n)){
            for(int i=0;i<n;i++){
                for(int j=1;j<=n/2;j++)
                    printf("%d %d ",i*(n/2)+j,n*n-(i*(n/2)+j)+1);
                printf("
    ");
            }
        }
        return 0;
    }
  • 相关阅读:
    USACO 2021 US Open
    【UR #20】跳蚤电话
    省选前的做题记录
    PE444
    杂题
    CF1190E
    gym100299E
    杂题
    2021 5 10 团队博客
    2021 5 9 团队博客
  • 原文地址:https://www.cnblogs.com/jackge/p/3220894.html
Copyright © 2011-2022 走看看