| Task: | Island |
| Sender: | Sebastian |
| Submission time: | 2026-04-16 13:45:30 +0300 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | 34 |
| subtask | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | ACCEPTED | 6 |
| #3 | WRONG ANSWER | 0 |
| #4 | ACCEPTED | 28 |
| #5 | WRONG ANSWER | 0 |
| test | verdict | time | subtask | |
|---|---|---|---|---|
| #1 | WRONG ANSWER | 0.00 s | 1, 5 | details |
| #2 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5 | details |
| #3 | WRONG ANSWER | 0.01 s | 1, 5 | details |
| #4 | WRONG ANSWER | 0.01 s | 1, 5 | details |
| #5 | WRONG ANSWER | 0.01 s | 1, 3, 5 | details |
| #6 | ACCEPTED | 0.01 s | 1, 2, 4, 5 | details |
| #7 | ACCEPTED | 0.01 s | 1, 2, 4, 5 | details |
| #8 | WRONG ANSWER | 0.01 s | 1, 5 | details |
| #9 | WRONG ANSWER | 0.01 s | 1, 5 | details |
| #10 | ACCEPTED | 0.01 s | 1, 3, 4, 5 | details |
| #11 | WRONG ANSWER | 0.01 s | 1, 3, 5 | details |
| #12 | ACCEPTED | 0.01 s | 1, 4, 5 | details |
| #13 | ACCEPTED | 0.01 s | 1, 3, 4, 5 | details |
| #14 | ACCEPTED | 0.01 s | 1, 4, 5 | details |
| #15 | WRONG ANSWER | 0.01 s | 1, 5 | details |
| #16 | WRONG ANSWER | 0.01 s | 1, 5 | details |
| #17 | WRONG ANSWER | 0.01 s | 1, 5 | details |
| #18 | WRONG ANSWER | 0.01 s | 1, 5 | details |
| #19 | ACCEPTED | 0.14 s | 2, 4, 5 | details |
| #20 | ACCEPTED | 0.15 s | 2, 4, 5 | details |
| #21 | ACCEPTED | 0.14 s | 2, 4, 5 | details |
| #22 | ACCEPTED | 0.13 s | 2, 4, 5 | details |
| #23 | WRONG ANSWER | 0.14 s | 3, 5 | details |
| #24 | WRONG ANSWER | 0.14 s | 3, 5 | details |
| #25 | WRONG ANSWER | 0.14 s | 3, 5 | details |
| #26 | WRONG ANSWER | 0.13 s | 3, 5 | details |
| #27 | ACCEPTED | 0.43 s | 3, 4, 5 | details |
| #28 | ACCEPTED | 0.29 s | 3, 4, 5 | details |
| #29 | ACCEPTED | 0.47 s | 4, 5 | details |
| #30 | ACCEPTED | 0.47 s | 4, 5 | details |
| #31 | ACCEPTED | 0.24 s | 4, 5 | details |
| #32 | ACCEPTED | 0.24 s | 4, 5 | details |
| #33 | ACCEPTED | 0.17 s | 4, 5 | details |
| #34 | ACCEPTED | 0.31 s | 4, 5 | details |
| #35 | WRONG ANSWER | 0.14 s | 5 | details |
| #36 | WRONG ANSWER | 0.14 s | 5 | details |
| #37 | WRONG ANSWER | 0.14 s | 5 | details |
| #38 | WRONG ANSWER | 0.14 s | 5 | details |
| #39 | WRONG ANSWER | 0.14 s | 5 | details |
| #40 | WRONG ANSWER | 0.14 s | 5 | details |
| #41 | WRONG ANSWER | 0.13 s | 5 | details |
| #42 | WRONG ANSWER | 0.13 s | 5 | details |
| #43 | WRONG ANSWER | 0.13 s | 5 | details |
| #44 | WRONG ANSWER | 0.13 s | 5 | details |
Code
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef __int128_t i128;
#define all(x) begin(x), end(x)
#define sz(x) ((int)(x).size())
const ll inf = 4e18;
struct segtree {
ll nt = 0;
vector<ll> tree;
segtree(vector<ll> &a) {
while (sz(a) & (sz(a)-1)) a.push_back(0);
nt = sz(a);
tree = vector<ll>(2*nt);
for (ll i = 0; i < nt; i++) tree[nt+i] = a[i];
for (ll i = nt; i--;) tree[i] = max(tree[2*i], tree[2*i+1]);
}
ll first_gr(ll l, ll v) { ll res = inf; first_gr(1, 0, nt-1, l, v, res); return res; }
bool first_gr(ll k, ll tl, ll tr, ll l, ll v, ll &res) {
if (l > tr) return false;
if (l <= tl && tree[k] <= v) return false;
if (tl == tr) return res = tl, true;
ll mid = tl + (tr - tl) / 2;
return first_gr(2*k, tl, mid, l, v, res) || first_gr(2*k+1, mid+1, tr, l, v, res);
}
};
void solve() {
ll n, q; cin >> n >> q;
vector<vector<bool>> grid(n, vector<bool>(n));
vector<ll> ls(n, inf), rs(n, inf);
vector<ll> lss(n, inf), rss(n, inf);
for (ll i = 0; i < n; i++) {
for (ll j = 0; j < n; j++) {
char c; cin >> c;
grid[i][j] = (c == '#');
if (!grid[i][j]) continue;
ls[i] = min(ls[i], j);
rs[i] = -j;
lss[n-1-i] = ls[i];
rss[n-1-i] = rs[i];
}
}
segtree lt(ls), rt(rs);
segtree ltt(lss), rtt(rss);
map<ll, ll> dist;
auto get_dist = [&](auto &oink, pll a, pll b) -> ll {
if (a > b) swap(a, b);
ll key = a.first * 1000000000 + a.second * 1000000 + b.first * 1000 + b.second;
if (dist.count(key)) return dist[key];
if (a.first == b.first) return abs(a.second - b.second);
ll i = min(lt.first_gr(a.first, a.second), rt.first_gr(a.first, -a.second));
ll j = max(n-1-ltt.first_gr(n-1-b.first, b.second), n-1-rtt.first_gr(n-1-b.first, -b.second));
if (j < i) return abs(a.first - b.first) + abs(a.second - b.second);
pll p1 = (a.second < ls[i]) ? pll(i, ls[i]) : pll(i, -rs[i]);
pll p2 = (b.second < ls[j]) ? pll(j, ls[j]) : pll(j, -rs[j]);
return dist[key] = oink(oink, p1, p2) + abs(a.first - p1.first) + abs(a.second - p1.second) + abs(b.first - p2.first) + abs(b.second - p2.second);
};
while (q--) {
pll a, b;
cin >> a.first >> a.second >> b.first >> b.second;
a.first--; a.second--; b.first--; b.second--;
cout << get_dist(get_dist, a, b) << '\n';
}
}
int main(){
cin.tie(0)->sync_with_stdio(0);
solve();
}
Test details
Test 1
Subtask: 1, 5
Verdict: WRONG ANSWER
| input |
|---|
| 8 4 ........ ..####.. .##.###. .##.###. ... |
| correct output |
|---|
| 5 0 17 3 |
| user output |
|---|
| 5 0 13 3 |
Feedback: Incorrect character on line 3 col 2: expected "17", got "13"
Test 2
Subtask: 1, 2, 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 3 1 ... .#. ... 2 2 2 2 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 3
Subtask: 1, 5
Verdict: WRONG ANSWER
| input |
|---|
| 199 196 ................................. |
| correct output |
|---|
| 468 605 825 532 496 ... |
| user output |
|---|
| 216 151 155 206 216 ... |
Feedback: Incorrect character on line 1 col 1: expected "468", got "216"
Test 4
Subtask: 1, 5
Verdict: WRONG ANSWER
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 112 347 142 459 239 ... |
| user output |
|---|
| 50 119 76 151 175 ... |
Feedback: Incorrect character on line 1 col 1: expected "112", got "50"
Test 5
Subtask: 1, 3, 5
Verdict: WRONG ANSWER
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 381 544 94 532 98 ... |
| user output |
|---|
| 139 222 42 170 42 ... |
Feedback: Incorrect character on line 1 col 1: expected "381", got "139"
Test 6
Subtask: 1, 2, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 133 73 81 82 53 ... |
| user output |
|---|
| 133 73 81 82 53 ... |
Test 7
Subtask: 1, 2, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 139 52 101 14 144 ... |
| user output |
|---|
| 139 52 101 14 144 ... |
Test 8
Subtask: 1, 5
Verdict: WRONG ANSWER
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 236 555 878 632 829 ... |
| user output |
|---|
| 110 89 126 216 95 ... |
Feedback: Incorrect character on line 1 col 1: expected "236", got "110"
Test 9
Subtask: 1, 5
Verdict: WRONG ANSWER
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 425 296 698 577 422 ... |
| user output |
|---|
| 187 142 100 169 120 ... |
Feedback: Incorrect character on line 1 col 1: expected "425", got "187"
Test 10
Subtask: 1, 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 1365 7284 11808 6136 9283 ... |
| user output |
|---|
| 1365 7284 11808 6136 9283 ... |
Test 11
Subtask: 1, 3, 5
Verdict: WRONG ANSWER
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 6292 17954 16728 8938 1335 ... |
| user output |
|---|
| 44 98 168 112 87 ... |
Feedback: Incorrect character on line 1 col 1: expected "6292", got "44"
Test 12
Subtask: 1, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 27 141 269 127 61 ... |
| user output |
|---|
| 27 141 269 127 61 ... |
Test 13
Subtask: 1, 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 19552 19544 19478 19402 19456 ... |
| user output |
|---|
| 19552 19544 19478 19402 19456 ... |
Test 14
Subtask: 1, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 17624 17515 17468 17689 17510 ... |
| user output |
|---|
| 17624 17515 17468 17689 17510 ... |
Test 15
Subtask: 1, 5
Verdict: WRONG ANSWER
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 1584 1433 567 2248 1030 ... |
| user output |
|---|
| 112 115 105 44 58 ... |
Feedback: Incorrect character on line 1 col 2: expected "1584", got "112"
Test 16
Subtask: 1, 5
Verdict: WRONG ANSWER
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 5872 6374 60 323 5311 ... |
| user output |
|---|
| 162 288 30 83 131 ... |
Feedback: Incorrect character on line 1 col 1: expected "5872", got "162"
Test 17
Subtask: 1, 5
Verdict: WRONG ANSWER
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 1852 213 252 3861 1835 ... |
| user output |
|---|
| 114 143 116 153 133 ... |
Feedback: Incorrect character on line 1 col 2: expected "1852", got "114"
Test 18
Subtask: 1, 5
Verdict: WRONG ANSWER
| input |
|---|
| 200 200 ................................. |
| correct output |
|---|
| 1564 2709 866 1318 1758 ... |
| user output |
|---|
| 98 265 124 228 214 ... |
Feedback: Incorrect character on line 1 col 1: expected "1564", got "98"
Test 19
Subtask: 2, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 997 100000 ................................. |
| correct output |
|---|
| 150 531 370 518 508 ... |
| user output |
|---|
| 150 531 370 518 508 ... |
Test 20
Subtask: 2, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 390 278 783 1269 249 ... |
| user output |
|---|
| 390 278 783 1269 249 ... |
Test 21
Subtask: 2, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 63 142 813 683 731 ... |
| user output |
|---|
| 63 142 813 683 731 ... |
Test 22
Subtask: 2, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 949 876 1209 494 1033 ... |
| user output |
|---|
| 949 876 1209 494 1033 ... |
Test 23
Subtask: 3, 5
Verdict: WRONG ANSWER
| input |
|---|
| 997 100000 ................................. |
| correct output |
|---|
| 714 2683 3699 2085 7850 ... |
| user output |
|---|
| 302 459 505 527 232 ... |
Feedback: Incorrect character on line 1 col 1: expected "714", got "302"
Test 24
Subtask: 3, 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 5081 1819 1050 4610 528 ... |
| user output |
|---|
| 53 699 378 806 252 ... |
Feedback: Incorrect character on line 1 col 2: expected "5081", got "53"
Test 25
Subtask: 3, 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 3554 6322 6648 2882 1490 ... |
| user output |
|---|
| 498 422 174 374 306 ... |
Feedback: Incorrect character on line 1 col 1: expected "3554", got "498"
Test 26
Subtask: 3, 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 433976 81646 87810 48080 110879 ... |
| user output |
|---|
| 848 1280 950 320 233 ... |
Feedback: Incorrect character on line 1 col 1: expected "433976", got "848"
Test 27
Subtask: 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 207982 140036 208364 51912 56826 ... |
| user output |
|---|
| 207982 140036 208364 51912 56826 ... |
Test 28
Subtask: 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 497525 497563 498000 496804 497335 ... |
| user output |
|---|
| 497525 497563 498000 496804 497335 ... |
Test 29
Subtask: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 38580 2097 9795 38033 1639 ... |
| user output |
|---|
| 38580 2097 9795 38033 1639 ... |
Test 30
Subtask: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 33 20900 25028 1782 13599 ... |
| user output |
|---|
| 33 20900 25028 1782 13599 ... |
Test 31
Subtask: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 1421 1122 1840 834 443 ... |
| user output |
|---|
| 1421 1122 1840 834 443 ... |
Test 32
Subtask: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 1378 1751 2274 250 811 ... |
| user output |
|---|
| 1378 1751 2274 250 811 ... |
Test 33
Subtask: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 1126 886 544 223 272 ... |
| user output |
|---|
| 1126 886 544 223 272 ... |
Test 34
Subtask: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 327286 447779 447534 448307 446997 ... |
| user output |
|---|
| 327286 447779 447534 448307 446997 ... |
Test 35
Subtask: 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 2597 1473 1933 2691 1837 ... |
| user output |
|---|
| 893 529 481 921 723 ... |
Feedback: Incorrect character on line 1 col 1: expected "2597", got "893"
Test 36
Subtask: 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 553 4357 3147 6951 1573 ... |
| user output |
|---|
| 237 751 811 1165 451 ... |
Feedback: Incorrect character on line 1 col 1: expected "553", got "237"
Test 37
Subtask: 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 1723 2039 1871 5638 4256 ... |
| user output |
|---|
| 253 1539 719 364 712 ... |
Feedback: Incorrect character on line 1 col 1: expected "1723", got "253"
Test 38
Subtask: 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 1546 704 2796 3802 1870 ... |
| user output |
|---|
| 932 366 386 928 332 ... |
Feedback: Incorrect character on line 1 col 1: expected "1546", got "932"
Test 39
Subtask: 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 3115 2042 2083 3227 740 ... |
| user output |
|---|
| 1279 104 591 1347 230 ... |
Feedback: Incorrect character on line 1 col 1: expected "3115", got "1279"
Test 40
Subtask: 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 5222 3211 5230 1772 2310 ... |
| user output |
|---|
| 868 887 510 252 408 ... |
Feedback: Incorrect character on line 1 col 1: expected "5222", got "868"
Test 41
Subtask: 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 159214 68851 200821 141404 145704 ... |
| user output |
|---|
| 1060 713 1007 660 1220 ... |
Feedback: Incorrect character on line 1 col 2: expected "159214", got "1060"
Test 42
Subtask: 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 1843 25028 124430 84542 131339 ... |
| user output |
|---|
| 113 354 640 702 785 ... |
Feedback: Incorrect character on line 1 col 2: expected "1843", got "113"
Test 43
Subtask: 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 111206 75799 12026 142133 20483 ... |
| user output |
|---|
| 976 481 368 839 221 ... |
Feedback: Incorrect character on line 1 col 1: expected "111206", got "976"
Test 44
Subtask: 5
Verdict: WRONG ANSWER
| input |
|---|
| 1000 100000 ................................. |
| correct output |
|---|
| 20360 9075 12187 54923 54574 ... |
| user output |
|---|
| 310 149 301 1109 822 ... |
Feedback: Incorrect character on line 1 col 1: expected "20360", got "310"
