QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#515808#4328. DugputPorNPtree44.882701 236ms55096kbC++172.4kb2024-08-12 08:16:022024-10-24 22:21:14

Judging History

你现在查看的是测评时间为 2024-10-24 22:21:14 的历史记录

  • [2024-10-24 22:48:20]
  • 管理员手动重测本题所有提交记录
  • 测评结果:13.634278
  • 用时:259ms
  • 内存:54980kb
  • [2024-10-24 22:43:33]
  • 管理员手动重测本题所有提交记录
  • 测评结果:0
  • 用时:19ms
  • 内存:26392kb
  • [2024-10-24 22:23:36]
  • 管理员手动重测本题所有提交记录
  • 测评结果:0
  • 用时:18ms
  • 内存:24424kb
  • [2024-10-24 22:21:14]
  • 管理员手动重测本题所有提交记录
  • 测评结果:44.882701
  • 用时:236ms
  • 内存:55096kb
  • [2024-08-12 08:16:03]
  • 评测
  • 测评结果:60
  • 用时:259ms
  • 内存:55104kb
  • [2024-08-12 08:16:02]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

const int N = 10005;
const int dx[] = {-1, 0, 1, 0},
          dy[] = {0, 1, 0, -1};

int vis[N][N];
string S;
int sx, sy, tx, ty;

void walk(int c) {
    if (vis[sx + dx[c]][sy + dy[c]]++) return;
    sx += dx[c], sy += dy[c], S += "URDL"[c];
}

char res[N << 1][N * 3];

signed main() {
    int id, T; scanf("%d%d", &id, &T);
    while (T--) {
        int n, m, tsx, tsy;
        scanf("%d%d%d%d%d%d", &n, &m, &sx, &sy, &tx, &ty);
        tsx = sx, tsy = sy;
        for (int i = 0; i <= n + 1; ++i) {
            for (int j = 0; j <= m + 1; ++j) {
                vis[i][j] = (i < 1 || i > n || j < 1 || j > m);
            }
        }
        S = "";
        if (n == 1) {
            while (sy < ty) walk(1);
            while (sy > ty) walk(3);
        } else if (m == 1) {
            while (sx < tx) walk(2);
            while (sx > tx) walk(0);
        } else {
            while (sx < tx) walk(2);
            while (sx > tx) walk(0);
            while (sy < ty) walk(1);
            while (sy > ty) walk(3);
        }
        if (id == 5) printf("%d\n", (int)S.size() + 1);
        else {
            assert(sx == tx && sy == ty);
            for (int i = 1; i <= n * 2 - 1; ++i) {
                for (int j = 1; j <= m * 3 - 2; ++j) res[i][j] = ' ';
            }
            for (int i = 1; i <= n * 2 - 1; i += 2) {
                for (int j = 1; j <= m * 3 - 2; j += 3) res[i][j] = 'o';
            }
            sx = tsx, sy = tsy;
            res[tsx * 2 - 1][tsy * 3 - 2] = '*';
            res[tx * 2 - 1][ty * 3 - 2] = '*';
            for (auto c : S) {
                if (c == 'R') {
                    res[sx * 2 - 1][sy * 3 - 1] = res[sx * 2 - 1][sy * 3] = '-';
                    ++sy;
                } else if (c == 'L') {
                    --sy;
                    res[sx * 2 - 1][sy * 3 - 1] = res[sx * 2 - 1][sy * 3] = '-';
                } else if (c == 'D') {
                    res[sx * 2][sy * 3 - 2] = '|';
                    ++sx;
                } else {
                    --sx;
                    res[sx * 2][sy * 3 - 2] = '|';
                }
            }
            for (int i = 1; i <= n * 2 - 1; ++i) {
                for (int j = 1; j <= m * 3 - 2; ++j) putchar(res[i][j]);
                puts("");
            }
        }
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 15.0077
Acceptable Answer

Test #1:

score: 15.0077
Acceptable Answer
time: 5ms
memory: 16096kb

input:

1
1562
15 6 1 6 15 1
15 6 5 6 11 1
15 6 15 2 1 5
15 6 1 6 1 3
15 6 15 6 11 6
15 6 1 1 4 2
15 6 2 1 9 2
15 6 4 5 9 4
15 6 4 5 4 6
15 6 9 2 3 2
15 6 9 2 6 5
2 41 1 41 2 1
2 41 1 24 2 9
2 41 2 2 1 10
2 41 1 1 1 14
2 41 2 1 1 10
2 41 2 16 2 17
2 41 1 28 2 35
2 41 2 9 1 36
2 41 1 18 ...

output:

o  o  o  o  o  *
               |
o  o  o  o  o  o
               |
o  o  o  o  o  o
               |
o  o  o  o  o  o
               |
o  o  o  o  o  o
               |
o  o  o  o  o  o
               |
o  o  o  o  o  o
               |
o  o  o  o  o  o
               |
o  o  o  o  o  o
           ...

result:

points 0.7503849052 correct (test case 1562)

Subtask #2:

score: 18.7596
Acceptable Answer

Dependency #1:

75.0385%
Acceptable Answer

Test #2:

score: 19.9604
Acceptable Answer
time: 12ms
memory: 55096kb

input:

2
1562
500 1 1 1 500 1
500 1 52 1 76 1
500 1 24 1 243 1
500 1 1 1 386 1
500 1 1 1 10 1
500 1 340 1 117 1
500 1 298 1 363 1
500 1 300 1 103 1
500 1 370 1 383 1
12 83 12 1 12 83
12 83 12 27 12 65
12 83 1 22 1 78
12 83 1 83 12 69
12 83 1 83 2 83
12 83 1 83 2 60
12 83 10 83 11 14
12 83...

output:

*
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
o
|
...

result:

points 0.7984167424 correct (test case 1562)

Subtask #3:

score: 11.1154
Acceptable Answer

Dependency #2:

75.0385%
Acceptable Answer

Test #3:

score: 11.1154
Acceptable Answer
time: 23ms
memory: 54876kb

input:

3
1172
500 3 500 3 1 3
500 3 332 1 425 1
500 3 390 1 270 3
500 3 1 1 293 3
500 3 500 1 284 1
500 3 1 3 55 2
500 3 314 1 457 2
500 3 68 2 261 2
500 3 68 2 69 3
500 3 299 2 376 2
500 3 299 2 299 1
500 3 500 1 1 1
500 3 103 1 300 1
500 3 142 1 113 1
500 3 1 1 76 3
500 3 1 1 439 1
500 ...

output:

o  o  *
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
      |
o  o  o
    ...

result:

points 0.741025342 correct (test case 1172)

Subtask #4:

score: 0
Wrong Answer

Dependency #3:

74.1025%
Acceptable Answer

Test #4:

score: 0
Wrong Answer
time: 236ms
memory: 55068kb

input:

4
1562
165 500 1 500 165 500
165 500 78 500 1 401
165 500 165 469 104 500
165 500 1 1 165 298
165 500 165 1 1 499
165 500 165 1 4 122
165 500 8 1 85 361
165 500 112 191 152 254
165 500 112 191 114 190
165 500 49 106 64 350
165 500 49 106 48 108
22 500 22 500 22 1
22 500 20 1 1 387
22 ...

output:

o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  o  ...

result:

wrong answer invalid map: (1, 1) is  , but it should be either o or * (test case 1349)

Subtask #5:

score: 0
Wrong Answer

Test #5:

score: 0
Wrong Answer
time: 19ms
memory: 26328kb

input:

5
1562
165 500 1 500 165 500
165 500 78 500 1 401
165 500 165 469 104 500
165 500 1 1 165 298
165 500 165 1 1 499
165 500 165 1 4 122
165 500 8 1 85 361
165 500 112 191 152 254
165 500 112 191 114 190
165 500 49 106 64 350
165 500 49 106 48 108
22 500 22 500 22 1
22 500 20 1 1 387
22 ...

output:

165
177
93
462
663
283
438
104
4
260
4
500
406
29
223
141
136
151
28
4
26
5
21
212
112
120
450
300
92
28
4
218
5
500
286
301
117
143
40
316
327
4
211
4
579
245
434
576
458
452
118
298
5
308
5
521
230
233
226
233
198
380
99
5
58
3
500
288
329
100
477
164
241
338
5
88
5
500
313
131
294
491
140
92
7
24...

result:

wrong answer read 165 but expected 1162 (test case 1)