• API
• FAQ
• Tools
• Archive
SHARE
TWEET

# I - Matrix Sum

a guest Aug 29th, 2017 133 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. #include <bits/stdc++.h>
2. #define pb push_back
3. #define mk make_pair
4. #define fi first
5. #define se second
6. #define For(i,a,b) for(int (i)=(a);(i) < (b); ++(i))
7. using namespace std;
8. typedef vector<int> vi;
9. typedef pair<int,int> ii;
10. typedef long long ll;
11. typedef vector<bool> vb;
12. const int N=1010;
13.
14. ll sm, s, n, r[N], c[N], m[N][N], a[N][N];
15.
16. int main(void) {
17.     cin >> n;
18.     For(i,0,n)
19.         For(j,0,n) {
20.             cin >> m[i][j];
21.             c[j]+=m[i][j];
22.             r[i]+=m[i][j];
23.             sm += m[i][j];
24.         }
25.
26.     if (n == 1) {
27.         if (m[0][0] == 0 || m[0][0] == 1)
28.             goto ans_1;
29.         goto ans_0;
30.     }
31.
32.     if (sm % (2*n - 1) != 0)
33.         goto ans_0;
34.
35.     s = sm / (ll)(2*n-1);
36.
37.     for (int i = 0; i<n; i++)
38.         for (int j = 0; j<n; j++) {
39.             if ((c[j]-s)%(n-1) != 0)
40.                 goto ans_0;
41.
42.             ll sa = (c[j]-s)/(n-1);
43.
44.             if ((r[i]-s)%(n-1) != 0)
45.                 goto ans_0;
46.
47.             ll sb = (r[i]-s)/(n-1);
48.
49.             a[i][j] = sa + sb - m[i][j];
50.             if (a[i][j] > 1 || a[i][j] < 0)
51.                 goto ans_0;
52.         }
53.
54. ans_1:
55.     cout << "1\n";
56.     return 0;
57.
58. ans_0:
59.     cout << "0\n";
60.     return 0;
61. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.
Top