QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#203526 | #2483. Roof Escape | DreamOn# | WA | 2ms | 6228kb | C++23 | 2.7kb | 2023-10-06 17:57:31 | 2023-10-06 17:57:32 |
Judging History
answer
#include <bits/stdc++.h>
#define MP(x, y) make_pair(x, y)
#define pii pair <int, int>
using namespace std;
const double eps = 1e-8;
int read() {
int x = 0, f = 1;
char c = getchar();
while(c < '0' || c > '9') {
if(c == '-') f = -1;
c = getchar();
}
while('0' <= c && c <= '9') {
x = x * 10 + c - '0';
c = getchar();
}
return x * f;
}
#define Maxn 100005
int W, H, Sx, Sy, Ex, Ey;
double ans1, ans2, k, b;
vector <int> t[Maxn];
void calcLine() {
if(Sx == Ex) k = 1926, b = Sx;
else {
k = (Sy - Ey) * 1.0 / (Sx - Ex);
b = Sy - k * Sx;
}
}
int main() {
W = read(); H = read(); Sx = read(); Sy = read(); Ex = read(); Ey = read();
ans1 = sqrt((Sx - Ex) * (Sx - Ex) + (Sy - Ey) * (Sy - Ey));
for(int i = 1; i <= H / 2; ++i) { // Attention it's a (H/2, W/2) matrix!
t[i].push_back(0);
for(int j = 1; j <= W / 2; ++j) t[i].push_back(read());
}
calcLine();
if(Sx > Ex) swap(Sx, Ex), swap(Sy, Ey);
for(double x = Sx + 1, y; x <= Ex - 1; x += 2) {
y = k * x + b;
if(fabs((y / 2) - (int)(y / 2)) > eps) { // Edge
int li = (ceil)(y / 2), lj = x / 2;
int ri = li, rj = lj + 1;
ans2 += fabs(t[li][lj] - t[ri][rj]);
// cerr << "???" << endl;
}
else { // Point
int ai = y / 2, aj = x / 2;
int bi = ai, bj = aj + 1;
int ci = ai + 1, cj = aj;
int di = ai + 1, dj = aj + 1;
int tmp[5] = {0, t[ai][aj], t[bi][bj], t[ci][cj], t[di][dj]};
sort(tmp + 1, tmp + 5);
int maxh = tmp[3];
if(k > 0) ans2 += abs(maxh - t[ai][aj]) + abs(maxh - t[di][dj]);
else ans2 += abs(maxh - t[bi][bj]) + abs(maxh - t[ci][cj]);
// cerr << "plog " << x << " " << y << " " << ans2 << " " << maxh << endl;
// cerr << "qlog " << ai << " " << bi << " " << ci << " " << di << endl;
// cerr << "elog " << aj << " " << bj << " " << cj << " " << dj << endl;
}
}
if(Sy > Ey) swap(Sx, Ex), swap(Sy, Ey);
// cerr << Sx << " " << Sy << " " << Ex << " " << Ey << endl;
for(double y = Sy + 1, x; y <= Ey - 1; y += 2) {
if(k == 1926) x = Sx;
else x = (y - b) / k;
// cerr << "!!!" << x << endl;
if(fabs((x / 2) - (int)(x / 2)) > eps) { // Edge
int ui = y / 2, uj = (ceil)(x / 2);
int di = ui + 1, dj = uj;
ans2 += fabs(t[ui][uj] - t[di][dj]);
// cerr << "???" << endl;
}
}
cout << fixed << setprecision(10);
cout << ans1 + ans2 << endl;
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 5960kb
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: 6060kb
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: 1ms
memory: 6140kb
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: 1ms
memory: 6032kb
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: 0ms
memory: 6020kb
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: 1ms
memory: 6028kb
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: 1ms
memory: 6148kb
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: 1ms
memory: 6036kb
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: 2ms
memory: 6028kb
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: 6032kb
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: 0ms
memory: 6028kb
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: 1ms
memory: 6028kb
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: 0
Accepted
time: 0ms
memory: 5984kb
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:
30.0000000000
result:
ok found '30.00000', expected '30.00000', error '0.00000'
Test #14:
score: 0
Accepted
time: 0ms
memory: 6140kb
input:
4 80 1 67 3 57 1 4 0 5 1 3 1 6 0 0 5 0 0 1 1 0 0 6 3 0 4 0 1 0 1 2 1 2 0 0 6 2 2 2 1 3 0 3 3 2 2 2 0 3 1 2 0 2 0 0 6 6 1 4 1 4 0 4 1 7 1 3 6 1 3 3 5 5 1 1 4 3 1 4 3 5 5 1 2 1
output:
25.1980390272
result:
ok found '25.19804', expected '25.19804', error '0.00000'
Test #15:
score: 0
Accepted
time: 1ms
memory: 5976kb
input:
6 66 1 59 1 51 2 1 1 5 2 6 2 3 2 0 2 6 2 3 2 0 4 2 4 1 5 2 0 6 4 2 2 0 0 1 1 2 0 3 4 2 0 2 1 1 1 2 4 0 3 0 1 0 2 6 5 1 0 5 0 2 1 1 3 3 2 5 3 3 1 4 1 7 1 3 2 5 2 0 5 3 4 5 4 3 0 5 2 4 0 6 3 2 4 4 1 2 0 0 6 0 4 4 3
output:
17.0000000000
result:
ok found '17.00000', expected '17.00000', error '0.00000'
Test #16:
score: 0
Accepted
time: 0ms
memory: 5876kb
input:
6 56 1 19 5 19 1 5 5 1 1 4 4 2 4 0 0 2 0 1 4 4 2 3 3 1 5 4 4 2 4 4 3 3 0 2 0 1 1 7 2 5 0 3 1 4 1 2 6 0 5 3 1 2 0 6 3 5 2 1 1 2 4 0 1 0 0 0 3 5 1 2 5 2 0 4 5 1 6 5 2 3 2 4 5 6 4 5 7 0
output:
9.0000000000
result:
ok found '9.00000', expected '9.00000', error '0.00000'
Test #17:
score: 0
Accepted
time: 1ms
memory: 5984kb
input:
8 50 1 31 3 7 4 3 3 1 1 3 0 1 6 0 1 4 0 0 1 5 1 3 0 3 0 4 0 0 3 3 3 5 2 3 2 1 0 5 1 4 1 5 3 7 1 2 4 3 6 0 3 1 2 5 6 0 4 5 4 2 2 1 1 7 6 2 4 3 2 3 3 0 0 0 2 3 2 0 4 1 0 1 3 3 2 0 2 5 2 6 1 0 3 1 2 1 5 2 4 1 0 2 4 2
output:
52.0831891576
result:
ok found '52.08319', expected '52.08319', error '0.00000'
Test #18:
score: 0
Accepted
time: 1ms
memory: 6136kb
input:
8 44 3 13 7 17 1 4 1 5 2 1 0 4 1 0 5 2 0 0 4 0 1 0 4 2 5 2 2 0 0 1 1 1 1 0 2 4 1 0 3 3 4 0 1 0 0 2 2 4 4 1 1 0 4 7 2 2 4 4 4 5 0 2 0 2 4 2 6 2 4 1 3 0 4 6 2 4 7 3 2 0 6 4 1 0 1 2 5 1 2 2 3 0
output:
7.6568542495
result:
ok found '7.65685', expected '7.65685', error '0.00000'
Test #19:
score: 0
Accepted
time: 1ms
memory: 5972kb
input:
100 100 21 15 63 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
79.9249648108
result:
ok found '79.92496', expected '79.92496', error '0.00000'
Test #20:
score: 0
Accepted
time: 2ms
memory: 6188kb
input:
300 300 199 221 255 3 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 ...
output:
271.0777643394
result:
ok found '271.07776', expected '271.07776', error '0.00000'
Test #21:
score: 0
Accepted
time: 2ms
memory: 6040kb
input:
20 500 5 53 1 359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
306.0261426741
result:
ok found '306.02614', expected '306.02614', error '0.00000'
Test #22:
score: 0
Accepted
time: 1ms
memory: 5976kb
input:
20 500 19 427 1 31 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0...
output:
485.4088798198
result:
ok found '485.40888', expected '485.40888', error '0.00000'
Test #23:
score: 0
Accepted
time: 1ms
memory: 5984kb
input:
500 20 367 15 323 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
44.7213595500
result:
ok found '44.72136', expected '44.72136', error '0.00000'
Test #24:
score: 0
Accepted
time: 0ms
memory: 5992kb
input:
500 20 153 13 153 5 1 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 ...
output:
11.0000000000
result:
ok found '11.00000', expected '11.00000', error '0.00000'
Test #25:
score: 0
Accepted
time: 0ms
memory: 6108kb
input:
8 2000 3 269 3 341 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0...
output:
89.0000000000
result:
ok found '89.00000', expected '89.00000', error '0.00000'
Test #26:
score: 0
Accepted
time: 1ms
memory: 6052kb
input:
2000 8 1257 5 1213 3 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0...
output:
57.0454310911
result:
ok found '57.04543', expected '57.04543', error '0.00000'
Test #27:
score: 0
Accepted
time: 1ms
memory: 6140kb
input:
2 12000 1 11617 1 9173 116 53 123 391 240 480 746 343 689 568 312 254 30 153 642 12 269 518 172 283 460 763 193 341 92 511 22 144 6 469 487 41 380 172 24 453 520 124 734 134 291 551 519 210 127 29 533 123 101 90 245 192 633 435 343 413 710 230 574 184 53 210 121 924 75 663 221 366 836 123 609 495 65...
output:
343138.0000000000
result:
ok found '343138.00000', expected '343138.00000', error '0.00000'
Test #28:
score: 0
Accepted
time: 0ms
memory: 6020kb
input:
6 6000 5 3061 3 3761 65 23 136 112 364 257 662 118 428 60 506 687 437 45 99 195 17 61 65 107 65 147 304 957 670 368 277 153 162 471 128 22 348 181 426 113 199 223 63 10 231 507 120 2 685 411 118 919 26 61 347 446 174 193 400 349 173 64 384 235 12 558 206 256 241 124 195 179 71 13 250 211 134 595 210...
output:
95384.0028571370
result:
ok found '95384.00286', expected '95384.00286', error '0.00000'
Test #29:
score: 0
Accepted
time: 2ms
memory: 6228kb
input:
10 4000 1 3925 5 979 0 218 7 52 96 730 484 600 592 32 53 694 81 275 458 56 124 377 217 0 750 729 17 56 372 71 170 96 280 38 87 471 475 407 594 629 595 385 670 387 589 459 433 128 319 237 386 585 237 32 672 49 387 327 871 431 384 101 513 463 24 219 985 536 363 651 135 163 11 129 744 493 614 739 733 7...
output:
384131.0027155452
result:
ok found '384131.00272', expected '384131.00272', error '0.00000'
Test #30:
score: 0
Accepted
time: 0ms
memory: 6212kb
input:
12 3000 9 775 9 2565 516 518 43 588 225 279 483 581 148 597 576 164 475 439 245 44 513 335 505 292 396 109 121 162 50 63 123 195 329 129 467 659 728 493 663 309 291 444 30 384 27 446 360 401 267 496 411 801 158 60 278 328 455 115 54 735 324 649 11 81 383 59 211 28 112 522 914 802 152 374 119 30 70 7...
output:
239411.0000000000
result:
ok found '239411.00000', expected '239411.00000', error '0.00000'
Test #31:
score: 0
Accepted
time: 2ms
memory: 6120kb
input:
16 2400 15 817 13 1343 52 588 698 118 141 30 561 198 597 445 180 791 72 65 121 64 133 79 453 206 397 468 706 868 528 36 505 289 830 95 168 479 152 428 213 113 129 133 757 66 655 409 195 663 89 135 916 257 211 192 713 791 149 311 407 427 86 746 93 66 426 653 336 631 766 705 280 29 246 236 184 113 11 ...
output:
75880.0038022676
result:
ok found '75880.00380', expected '75880.00380', error '0.00000'
Test #32:
score: 0
Accepted
time: 1ms
memory: 6060kb
input:
20 2000 5 75 9 299 254 187 385 415 5 725 163 98 108 258 833 79 605 693 184 34 731 296 330 265 777 123 14 391 82 871 228 142 443 315 95 559 338 101 262 319 58 529 97 44 277 104 120 289 542 284 56 864 176 158 248 398 36 269 520 76 312 179 63 434 577 192 740 323 918 20 88 503 413 186 826 815 121 164 22...
output:
30054.0357114390
result:
ok found '30054.03571', expected '30054.03571', error '0.00000'
Test #33:
score: -100
Wrong Answer
time: 2ms
memory: 6096kb
input:
22 1714 13 505 3 811 291 303 418 410 452 314 468 187 305 20 91 192 355 398 960 231 453 327 521 365 267 245 204 614 508 130 231 352 714 269 12 127 341 168 480 119 270 263 378 265 240 151 224 2 633 663 166 186 692 704 344 349 804 118 115 407 417 407 664 56 450 97 81 108 622 380 319 35 736 276 540 254 ...
output:
45116.1633550901
result:
wrong answer 1st numbers differ - expected: '44752.16336', found: '45116.16336', error = '0.00813'