[Offer收割]编程练习赛40 register

Ended

Participants:189

Verdict:Accepted
Score:100 / 100
Submitted:2017-12-17 12:21:09

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <bits/stdc++.h>
using namespace std;
#define MAXN 100
int mat[MAXN][MAXN];
int main() {
    int n, m; scanf("%d%d", &n, &m);
    int ans = 0;
    for (int i=0; i<n; ++i) {
        for (int j=0; j<m; ++j) {
            scanf("%d", &mat[i][j]);
            if (i < 2 || j < 2) { continue; }
            int rsum[3] = { 0, 0, 0 };
            int csum[3] = { 0, 0, 0 };
            int dsum = 0, rdsum = 0;
            for (int a=0; a<3; ++a) {
                for (int b=0; b<3; ++b) {
                    rsum[a] += mat[i-a][j-b];
                    csum[b] += mat[i-a][j-b];
                    if (a == b) { dsum += mat[i-a][j-b]; }
                    if (a+b == 2) { rdsum += mat[i-a][j-b]; }
                }   
            }   
            bool ok = true;
            for (int a=0; a<3 && ok; ++a) {
                ok &= (rsum[0] == rsum[a]);
                ok &= (rsum[a] == csum[a]);
            }   
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX