QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#203122 | #2483. Roof Escape | SolitaryDream# | WA | 2ms | 8540kb | C++17 | 1.8kb | 2023-10-06 15:36:52 | 2023-10-06 15:36:53 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5 + 10;
int n, m, sx, sy, ex, ey;
vector<int> mp[N];
inline int Det(int a, int b, int u, int v, int x, int y) {
u -= a; v -= b;
x -= a; y -= b;
return u * y - x * v;
}
signed main() {
scanf("%lld%lld%lld%lld%lld%lld", &n, &m, &sx, &sy, &ex, &ey);
n /= 2; m /= 2;
for (int i = 0; i <= n + 1; ++i) mp[i].resize(m + 2);
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
scanf("%lld", &mp[i][j]);
if (sx > ex) {
sx = 2 * n - sx; ex = 2 * n - ex;
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
if (i < n - i + 1) swap(mp[i][j], mp[n - i + 1][j]);
}
if (sy > ey) {
sy = 2 * m - sy; ey = 2 * m - ey;
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
if (j < m - j + 1) swap(mp[i][j], mp[i][m - j + 1]);
}
long double ans1 = hypot(sx - ex, sy - ey);
int ans2 = 0;
for (int i = (sx + 1) / 2, j = (sy + 1) / 2; ; ) {
if (i == (ex + 1) / 2 && j == (ey + 1) / 2) break;
// printf("%lld %lld\n", i, j);
int d = Det(sx, sy, 2 * i, 2 * j, ex, ey);
// printf("%lld\n", d);
if (d > 0) {
ans2 += abs(mp[i][j] - mp[i][j + 1]);
++j;
} else if (d == 0) {
vector<int> a({mp[i][j], mp[i + 1][j], mp[i][j + 1], mp[i + 1][j + 1]});
sort(a.begin(), a.end());
int h = a[2];
ans2 += abs(mp[i][j] - h) + abs(mp[i + 1][j + 1] - h);
++i; ++j;
} else {
ans2 += abs(mp[i][j] - mp[i + 1][j]);
++i;
}
}
printf("%.10Lf\n", ans1 + ans2);
return 0;
}
/*
4 8 1 1 3 7
1 2 5 1
1 5 2 1
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 2ms
memory: 8540kb
input:
4 26 1 1 3 25 0 1 0 5 5 5 0 1 2 1 4 1 5 0 0 0 1 0 6 4 3 2 5 4 1 5
output:
53.0831891576
result:
ok found '53.08319', expected '53.08319', error '0.00000'
Test #2:
score: 0
Accepted
time: 2ms
memory: 8448kb
input:
8 8 1 7 7 1 2 3 2 0 2 1 1 2 1 2 0 0 0 0 0 1
output:
14.4852813742
result:
ok found '14.48528', expected '14.48528', error '0.00000'
Test #3:
score: 0
Accepted
time: 0ms
memory: 8328kb
input:
2 2 1 1 1 1 100
output:
0.0000000000
result:
ok found '0.00000', expected '0.00000', error '-0.00000'
Test #4:
score: 0
Accepted
time: 2ms
memory: 8484kb
input:
4 4 1 1 3 3 100 1 1 100
output:
2.8284271247
result:
ok found '2.82843', expected '2.82843', error '0.00000'
Test #5:
score: 0
Accepted
time: 2ms
memory: 8532kb
input:
4 4 1 1 3 3 1 100 100 1
output:
200.8284271247
result:
ok found '200.82843', expected '200.82843', error '0.00000'
Test #6:
score: 0
Accepted
time: 0ms
memory: 8484kb
input:
4 4 1 3 3 1 1 100 100 1
output:
2.8284271247
result:
ok found '2.82843', expected '2.82843', error '0.00000'
Test #7:
score: 0
Accepted
time: 0ms
memory: 8480kb
input:
2 56 1 23 1 17 1 0 1 0 1 0 0 4 1 3 1 1 3 0 3 1 1 0 0 2 0 2 1 0 1 0 0 0
output:
10.0000000000
result:
ok found '10.00000', expected '10.00000', error '0.00000'
Test #8:
score: 0
Accepted
time: 2ms
memory: 8496kb
input:
2 28 1 9 1 23 2 1 1 3 2 1 2 0 3 1 1 1 1 3
output:
23.0000000000
result:
ok found '23.00000', expected '23.00000', error '0.00000'
Test #9:
score: 0
Accepted
time: 0ms
memory: 8416kb
input:
2 18 1 11 1 13 1 0 2 0 4 0 2 2 4
output:
4.0000000000
result:
ok found '4.00000', expected '4.00000', error '0.00000'
Test #10:
score: 0
Accepted
time: 0ms
memory: 8428kb
input:
2 400 1 133 1 399 3 6 2 3 0 2 0 3 6 1 6 3 1 5 3 1 6 3 0 2 4 3 3 2 3 0 6 4 2 5 0 3 1 1 3 0 1 3 0 3 5 2 1 2 4 5 0 2 1 0 4 7 3 1 6 4 3 5 2 0 0 3 2 0 2 7 1 0 2 1 2 0 3 0 3 0 6 2 0 4 2 0 3 3 5 0 3 6 3 0 3 2 1 5 1 1 2 6 1 2 1 0 1 2 1 3 2 4 0 5 1 4 2 2 4 4 3 2 1 5 2 3 1 0 0 2 7 5 0 0 2 1 1 0 4 4 2 0 1 4 5 ...
output:
560.0000000000
result:
ok found '560.00000', expected '560.00000', error '0.00000'
Test #11:
score: 0
Accepted
time: 2ms
memory: 8360kb
input:
2 200 1 117 1 97 1 7 2 2 0 4 3 0 0 0 0 5 4 0 4 4 7 0 2 7 3 5 0 1 2 4 2 0 0 0 3 3 1 3 2 2 2 0 3 3 3 0 0 3 1 3 4 2 1 6 0 1 0 2 1 3 5 2 5 2 0 1 0 1 0 1 1 3 3 3 1 5 1 1 7 0 2 2 2 7 2 1 4 3 1 1 0 0 1 2 1 0 6 2 2 2 1 1 1 0
output:
46.0000000000
result:
ok found '46.00000', expected '46.00000', error '0.00000'
Test #12:
score: 0
Accepted
time: 0ms
memory: 8416kb
input:
2 132 1 41 1 65 3 0 3 3 2 2 5 2 0 2 3 3 2 1 2 4 0 4 5 1 2 1 0 2 2 1 0 6 1 1 5 2 1 0 2 4 2 5 1 6 0 3 1 1 5 1 2 7 2 2 2 1 5 6 0 5 4 0 5 2 1 1 1 4 0 0
output:
49.0000000000
result:
ok found '49.00000', expected '49.00000', error '0.00000'
Test #13:
score: -100
Wrong Answer
time: 0ms
memory: 8504kb
input:
4 100 3 37 3 53 2 0 1 3 0 4 2 0 0 2 0 1 0 4 4 0 5 5 3 6 1 4 1 1 6 0 1 3 3 5 5 4 3 0 2 0 2 3 0 1 0 3 4 4 5 3 3 0 0 2 4 1 0 3 0 5 1 2 1 4 1 0 2 0 2 0 0 0 0 2 4 1 4 0 1 5 4 0 0 2 1 7 6 2 1 4 0 0 0 6 5 5 2 0 0 3 3 1 2 4
output:
36.0000000000
result:
wrong answer 1st numbers differ - expected: '30.00000', found: '36.00000', error = '0.20000'