Trên đường chéo Secundary


Submit solution

Points: 1 (partial)
Time limit: 1.0s
Memory limit: 98M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Đọc một ký tự chữ hoa cho biết một phép toán sẽ được thực hiện trong mảng M [12] [12]. Sau đó, tính và in tổng hoặc trung bình chỉ xem xét các con số nằm phía trên đường chéo thứ cấp của mảng, như thể hiện trong hình sau (vùng màu xanh lá cây). (Nếu không xem được ảnh hãy click vào link: https://ibb.co/C9ND8FQ)

enter image description here

Đầu vào

Dòng đầu tiên của đầu vào chứa một ký tự chữ hoa ('S' hoặc 'M'), cho biết hoạt động Sum hoặc Average (Média in portuguese) được thực hiện với các phần tử của mảng. Sau đó là nhập các phần tử của ma trận 12 x 12.

Đầu ra

In kết quả tính toán (tổng hoặc trung bình), với một chữ số sau dấu thập phân.

VÍ DỤ

INPUT

S
1   2   3   4   5   6   7   8   9   10  11  12
2   3   4   5   6   7   8   9   10  11  12  13
3   4   5   6   7   8   9   10  11  12  13  14
4   5   6   7   8   9   10  11  12  13  14  15
5   6   7   8   9   10  11  12  13  14  15  16
6   7   8   9   10  11  12  13  14  15  16  17
7   8   9   10  11  12  13  14  15  16  17  18
8   9   10  11  12  13  14  15  16  17  18  19
9   10  11  12  13  14  15  16  17  18  19  20
10  11  12  13  14  15  16  17  18  19  20  21
11  12  13  14  15  16  17  18  19  20  21  22
12  13  14  15  16  17  18  19  20  21  22  23

OUTPUT

506.0


Comments


  • 0
    ga123  commented on Oct. 4, 2021, 2:38 a.m.

    code đã tối ưu hóa bằng cách rút gọn điều kiện bằng biểu thức thay vì kiểm tra true false như thông thường

    #include"stdio.h"
    int main()
    {
    float a[13][13],tong=0;
    char c;int i,j;
    scanf("%c",&c);
    for(i=0;i<12;i++)
    for(j=0;j<12;j++)
    {
        scanf("%f",&a[i][j]);
    }
    for(i=0;i<12;i++)
    for(j=0;j<11-i;j++)//bằng cách này có thể cắt bớt thời gian.
    {
        tong+=a[i][j];
    }
    if(c=='S') printf("%.1f",tong);
    else printf("%.1f",tong/66);
    }

  • 0
    ga123  commented on Oct. 4, 2021, 2:13 a.m.

    xét 1 ma trận dạng 4x4:

    a[1][1] a[1][2] a[1][3] a[1][4]

    a[2][1] a[2][2] a[2][3] a[2][4]

    a[3][1] a[3][2] a[3][3] a[3][4]

    a[4][1] a[4][2] a[4][3] a[4][4]

    xét các phần tử trên đường chéo phụ: a[1][4] a[2][3] a[3][2] a[4][1]

    1+4 = 2+3 = 5 = số cột + 1 = số hàng + 1.

    xét phần tử trên đường chéo phụ:

    a[1][1] : tổng vị trí = 2

    a[2][1] a[1][2] : tổng vị trí = 3

    a[3][1] a[2][2] a[1][3] : tổng vị trí = 4

    vậy mọi phần tử này đều có tổng vị trí < 5 = số bậc của ma trận + 1.


  • 0
    ga123  commented on Oct. 4, 2021, 1:53 a.m.

    ad ơi hình như link ảnh bị lỗi r.