| Task: | Habitat |
| Sender: | Pohjantahti |
| Submission time: | 2018-09-27 17:32:21 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | UNKNOWN | -- | details |
| #2 | UNKNOWN | -- | details |
| #3 | UNKNOWN | -- | details |
| #4 | UNKNOWN | -- | details |
| #5 | UNKNOWN | -- | details |
| #6 | UNKNOWN | -- | details |
| #7 | UNKNOWN | -- | details |
| #8 | UNKNOWN | -- | details |
| #9 | UNKNOWN | -- | details |
| #10 | UNKNOWN | -- | details |
| #11 | UNKNOWN | -- | details |
| #12 | UNKNOWN | -- | details |
| #13 | UNKNOWN | -- | details |
| #14 | UNKNOWN | -- | details |
| #15 | UNKNOWN | -- | details |
Code
#include <iostream>
using namespace std;
typedef long long ll;
const int N = 100;
int n;
int t[N+5][N+5];
ll res[N*N+5];
void lisaa_range(int a, int b, ll x) {
res[a] += x;
res[b+1] -= x;
}
int dist(int y1, int x1, int y2, int x2) {
return abs(y2-y1) + abs(x2-x1);
}
bool ok(int y, int x, int k) {
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
if ((dist(y, x, i, j) <= k) && (t[i][j] <= k)) {
return true;
}
}
}
return false;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
cin >> t[i][j];
}
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
int k = -1;
for (int jp = (1<<14); jp >= 1; jp /= 2) {
if (k+jp < t[i][j] && !ok(i, j, k+jp)) k += jp;
}
k++;
if (k < t[i][j]) {
lisaa_range(k, t[i][j]-1, 1);
}
}
}
ll cres = 0;
for (int i = 0; i <= n*n; ++i) {
cres += res[i];
cout << cres << " ";
}
cout << "\n";
return 0;
}Test details
Test 1
Verdict: UNKNOWN
| input |
|---|
| 2 1 4 2 3 |
| correct output |
|---|
| 0 2 2 1 0 |
| user output |
|---|
| (not available) |
Test 2
Verdict: UNKNOWN
| input |
|---|
| 1 1 |
| correct output |
|---|
| 0 0 |
| user output |
|---|
| (not available) |
Test 3
Verdict: UNKNOWN
| input |
|---|
| 100 56 7 43 61 71 47 63 89 53 73 6... |
| correct output |
|---|
| 0 388 1949 4759 7641 8972 9293... |
| user output |
|---|
| (not available) |
Test 4
Verdict: UNKNOWN
| input |
|---|
| 100 9 8 4 10 7 6 1 1 9 5 3 2 7 3 1... |
| correct output |
|---|
| 0 2999 7373 6980 5935 4938 394... |
| user output |
|---|
| (not available) |
Test 5
Verdict: UNKNOWN
| input |
|---|
| 100 1322 9559 309 2570 8084 6083 4... |
| correct output |
|---|
| 0 4 36 120 200 433 685 901 113... |
| user output |
|---|
| (not available) |
Test 6
Verdict: UNKNOWN
| input |
|---|
| 100 3630 3488 4660 4293 304 7233 9... |
| correct output |
|---|
| 0 0 24 48 160 359 493 635 788 ... |
| user output |
|---|
| (not available) |
Test 7
Verdict: UNKNOWN
| input |
|---|
| 100 18 63 16 54 100 65 85 8 15 45 ... |
| correct output |
|---|
| 0 425 2143 4946 7602 9025 9346... |
| user output |
|---|
| (not available) |
Test 8
Verdict: UNKNOWN
| input |
|---|
| 100 3 7 3 2 6 7 1 9 6 9 5 7 9 7 6 ... |
| correct output |
|---|
| 0 2890 7384 7040 6051 5054 402... |
| user output |
|---|
| (not available) |
Test 9
Verdict: UNKNOWN
| input |
|---|
| 100 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| correct output |
|---|
| 0 2 7 15 26 40 57 77 100 126 1... |
| user output |
|---|
| (not available) |
Test 10
Verdict: UNKNOWN
| input |
|---|
| 100 1 10000 2 10000 3 10000 4 1000... |
| correct output |
|---|
| 0 2 11 27 50 80 117 161 212 27... |
| user output |
|---|
| (not available) |
Test 11
Verdict: UNKNOWN
| input |
|---|
| 100 9998 9999 9999 10000 9994 9998... |
| correct output |
|---|
| 0 4 12 24 40 60 84 112 144 180... |
| user output |
|---|
| (not available) |
Test 12
Verdict: UNKNOWN
| input |
|---|
| 100 9997 9997 9992 10000 9998 9991... |
| correct output |
|---|
| 0 4 12 24 40 60 84 112 144 180... |
| user output |
|---|
| (not available) |
Test 13
Verdict: UNKNOWN
| input |
|---|
| 100 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 ... |
| correct output |
|---|
| 0 100 200 300 400 500 600 700 ... |
| user output |
|---|
| (not available) |
Test 14
Verdict: UNKNOWN
| input |
|---|
| 100 9995 9995 9998 9999 9999 9991 ... |
| correct output |
|---|
| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
| user output |
|---|
| (not available) |
Test 15
Verdict: UNKNOWN
| input |
|---|
| 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
| user output |
|---|
| (not available) |
