QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#471741#5485. MazeManKerollos#WA 59ms4636kbC++172.3kb2024-07-11 06:11:342024-07-11 06:11:34

Judging History

你现在查看的是最新测评结果

  • [2024-07-11 06:11:34]
  • 评测
  • 测评结果:WA
  • 用时:59ms
  • 内存:4636kb
  • [2024-07-11 06:11:34]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

using ll = long long;

const int N = 105;
int reach[N][N][26];
bool vis[N][N];
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n, m;
    cin >> n >> m;
    vector<string> grid(n);
    cin.ignore();
    for (int i = 0; i < n; i++){
        getline(cin, grid[i]);
    }
    vector<int> ans(26);

    auto check = [&](int i, int j){
        return i >= 0 && i < n && j >= 0 && j < m && (grid[i][j] == '.' || grid[i][j] == ' ');
    };
    auto BFS = [&](int sti, int stj){
        char c = grid[sti][stj] - 'A';
        queue<pair<int, int>> q;
        for (int i = 0; i < n; i++)
            for (int j = 0; j < m; j++) vis[i][j] = 0;

        q.push({sti, stj});
        while (q.size()){
            auto [x, y] = q.front();
            q.pop();
            for (int d = 0; d < 4; d++){
                int nxtX = x + dx[d], nxtY = y + dy[d];
                if (check(nxtX, nxtY) && !vis[nxtX][nxtY]){
                    q.push({nxtX, nxtY});
                    vis[nxtX][nxtY] = 1;
                    if (grid[nxtX][nxtY] == '.'){
                        ans[c]++, reach[nxtX][nxtY][c] = 1;
                    }
                }
            }
        }
    };
    int tot = 0;
    for (int i = 0; i < n; i++){
        for (int j = 0; j < m; j++){            
            if (grid[i][j] >= 'A' && grid[i][j] <= 'W') {
                BFS(i, j);
            }
            else if (grid[i][j] == '.') tot++;
        }
    }
    for (char a = 0; a < 23; a++){
        for (char b = 0; b < a; b++){
            bool same = 1;
            for (int i = 0; i < n; i++){
                for (int j = 0; j < m; j++){
                    if (reach[i][j][a] != reach[i][j][b]){
                        same = 0;
                        break;
                    }
                }
                if (!same) break;
            }
            if (same){
               assert(ans[a] == ans[b]);
                ans[a] = 0;
                break;
            }
        }
    }
    int can = 0, cnt = 0;
    for (int i = 0; i < 23; i++){
        if (ans[i]) can += ans[i], cnt++;
    }
    cout << cnt << ' ' << tot - can;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3696kb

input:

10 20
XXXXXXXAXXXXXXXBXXXX
X.. ..X.X...... ...X
X.XXX...X.X.XXXXXX.X
X.X.XXXXX.X.X....X.X
X.X... ...X.X.XX.X.X
X.X.X.XXXXXXX.XX.X.X
X.X.X.X...X...X....X
X.X.X.XXXXXXX.XXXX.X
X...X.X X.. ..X..X.X
XXXXXXXDXXXXXXXXCXXX

output:

2 3

result:

ok 2 number(s): "2 3"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3660kb

input:

3 5
XDRVX
X.X.X
XXXXX

output:

2 0

result:

ok 2 number(s): "2 0"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3556kb

input:

3 5
NAQXX
X X.X
XXXXX

output:

0 1

result:

ok 2 number(s): "0 1"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3572kb

input:

10 68
XXXXXXPXXXXXXXXCXXXXXXXXXXXXXXXXXXXXHXXXXXXXXXXXXXXIXXRXXXXXXXXXKXXX
X.XX..XXXX.X.X.XXXXXX..XXXXX.X.X......X ......X.X.. X.....XXX..  X.X
X X.X.XXX.. X..X..X ..X..XX.XX.XXXXX.X....X.X.X.XXXX.X. X..X.X.....X
X.X..XX .XX..X....X.XX.X..XXX....X.X. .X....X.X .XX.X...X.XXX.. X..X
X.X..X..XXXXXX .. ...

output:

4 116

result:

ok 2 number(s): "4 116"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3832kb

input:

7 4
WIRX
VX.S
OXXN
XX E
K..B
T.XQ
CMDL

output:

2 0

result:

ok 2 number(s): "2 0"

Test #6:

score: 0
Accepted
time: 0ms
memory: 3628kb

input:

14 65
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X...... .XXX..X.X. ..XXX.XXX XX.X.X.XX .X.XXX..X.XX..XXXX....X .X
XXX..X.XXXXXXX..X.X....XX...XXX..XXX..XX....X...X.......X..X.XXXX
X.X.X......XXX .....XX. ...XX...X.X.XXX...X.....X.X.XX.XX ..X X X
X...........X.....X X...XXX.XX...

output:

1 318

result:

ok 2 number(s): "1 318"

Test #7:

score: 0
Accepted
time: 0ms
memory: 3644kb

input:

42 20
XAXXXXXXXXXXXXXXXXNX
X..X.XX.XX....XX.XXX
XX.XXX  X....XXX...V
X......XX...XXXXX..X
X....XX....X.XX....X
JX.XX XXX.XX..XX.XXX
X. ..XXX....XXX...XX
XX.... .XXX.XX..X.XX
X.X.....XX.X..X .X.X
X.X. ....XX.....XX.X
X X..X...X.XXXXXX..X
X.......XX.X..X.XXXX
X..XX...XX......XXXX
XX.XX..X ...X...XX.X
...

output:

3 258

result:

ok 2 number(s): "3 258"

Test #8:

score: 0
Accepted
time: 1ms
memory: 3600kb

input:

45 86
XXXXXXXXXXXXXXXXXXXXXXXXXXEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXX.X..XXXX.. XX.XX.X.X..XX....XX..X.X.X.XX.....X.X.X. ..X..XX.XX.XX.XX..X..X....XXX.X
XX...XX...XXX.XX.XXXX. XX....X. XXX....XXXXX...X.X.XXX.......XXX.X..XX...X.X..X..XX.XX
X XX...X.XX..XX. X...X..... .X..X...

output:

1 1791

result:

ok 2 number(s): "1 1791"

Test #9:

score: 0
Accepted
time: 0ms
memory: 3704kb

input:

35 47
XXXXXXXXXOXXXXXXXXHSXXXXXXXXNXXXXXXXXXXMXXXXXXX
X.X.XXX..XXXX.....X .  X........X  X..XX.XX..XQ
X.XXXX XX..X.....X..X....XX. XX..X..X.XX..XXX.X
X.XX..X....XX.XXX. X..XXX.XX.X..X.X.X.XX.X.X..X
X.X...XXX.X..X..XX X..X.. XXX..X XX.XXX..X.X..P
XXX.X..X... XX.......X XX.X X...X..  ..XX.X...X
X.X.XX...

output:

6 463

result:

ok 2 number(s): "6 463"

Test #10:

score: 0
Accepted
time: 1ms
memory: 3804kb

input:

68 83
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHXXXXXXXXXXXXXXXXX
X.X..XXX...X.XX.XX.......XXX .XXX .XX.......... .XXXX...XX..X.....XX.X.......X.XX.X
XXX.XX. XXXX.XXXX..X..XXX..X..XXXX  XX.X.X.X.......XX.XXXX.XXX.. .X....X. .X.X.XX.X
X.XXXXX.. ...X.....XX.X...XX...X....XXX.XX...

output:

7 2439

result:

ok 2 number(s): "7 2439"

Test #11:

score: 0
Accepted
time: 1ms
memory: 4028kb

input:

44 49
XXXXJXIXXXXXXXXXXXXXXXXFXXXXXXXXXXXXXXXXXXXXXXXXX
X.... X......X ... X.X. XXX..XXX.XX..XXXX...XX..X
X.X..XXX....XXXX...X.X.X.XX.  ...XXXX.X.XXX.X. .X
XX...X .X..X.X. X.. .X XXXX.XX.X... X.XXXX....XXX
X..X.X......X.XX.XXX.X...XXX..X .X.XX.X...XX..XXX
X X XXX.X....XX..XXX.XX.XX.X.XXXXXXXXX...X.X...

output:

5 807

result:

ok 2 number(s): "5 807"

Test #12:

score: 0
Accepted
time: 0ms
memory: 3748kb

input:

89 61
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLXXXXXXXXXXXXXXXXXXXXXXXX
X.X X.X..X..XX.X..XXX.X.X.XXX.XXX.XX. X.X.....XX..X.XX.....XX
X.X..X.XX.X.XXXXXX...X.... .XX. XXXXXXX..X...XXX..XXXX..XX.XX
XXXXXX..XX.......XXXX.X...X....XX..X..X.XX.XX.XX...XXXX ..X.X
X.X.XX.XX.X.. .... ..XX. .XXXX..X....X ..X.X.....

output:

8 2394

result:

ok 2 number(s): "8 2394"

Test #13:

score: 0
Accepted
time: 0ms
memory: 3868kb

input:

3 3
XAX
X.X
XXX

output:

1 0

result:

ok 2 number(s): "1 0"

Test #14:

score: 0
Accepted
time: 0ms
memory: 3620kb

input:

3 3
XAX
X X
XXX

output:

0 0

result:

ok 2 number(s): "0 0"

Test #15:

score: 0
Accepted
time: 0ms
memory: 3552kb

input:

3 3
XXX
X.X
XXX

output:

0 1

result:

ok 2 number(s): "0 1"

Test #16:

score: 0
Accepted
time: 0ms
memory: 3996kb

input:

94 5
XXXXX
X..XX
XXXXH
X.X.X
X.X.X
X..XX
X..XX
X.. X
X.X.X
X.XXX
L.XXX
X.X.X
XXX.P
X...X
XXXXX
XXX X
XX.XX
X.XXX
NX.XX
X...X
X.X.X
X.XXX
X..XX
XXX.X
XX.XX
XX..X
XXXXC
XX..X
X.XXX
X..XX
X..XX
X...X
X...X
X..XX
XX.XX
X. XX
XX..X
XX..X
X ..J
X.. X
X..XX
X.XXX
XXXXX
X...X
XX..X
X.XXX
Q ..X
XX.XX
XXXXX
X...

output:

8 59

result:

ok 2 number(s): "8 59"

Test #17:

score: 0
Accepted
time: 0ms
memory: 3940kb

input:

15 40
XXXXXXXXTXXXXXXXXXXXXXXXXXXNXXXIXXXXXKXX
X.X.. .X..X.X.. ..X...XX....X.X.XX....XX
XXX.......X.XXX. XXX.X....XXXX..XX.X...X
X.X.X.X...X. XX.X..XX.XX.. .X.XXX..XXXXX
XXX....XXXXX.XX.X.XXX.X.X.......X.XXXX.X
XX.XX... XX...XX.X......X..X.X X.X.X...X
XX..X.X....XXX.X.XX.XX.X...XXX.X.XXX.X.X
X.X..X....

output:

7 80

result:

ok 2 number(s): "7 80"

Test #18:

score: 0
Accepted
time: 0ms
memory: 3888kb

input:

12 100
XSXXXXXXXXXXXXXXXXXXXXXXCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXMXXXXXXXXXXX
XXXX.X..X..X.XXXX..X..XXXXXXXX....X X.XX..XXXXXXXXXXX X..XXXX.X..X....X.X ..X...XX.X..XX XX.XX..X.XX
X..X X..X...X.XXX......XXX...X.X.XXX...X....X.XXXX. X... ...X.X.XX .XXXXXXXXX .X..X...X XX....

output:

1 477

result:

ok 2 number(s): "1 477"

Test #19:

score: 0
Accepted
time: 1ms
memory: 3972kb

input:

99 48
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSCXXXXXXX
XX.XX...XX..XXX.X.X.X X.. .XXX.X......XXX.X..X.X
X. XX.XXX.X....X.X..XXX.XXXXXXXX.X.X..XX...X..XX
X..XXXXX..XXXXX.X..X..XX..X..X..XXX.. .X...XXX.X
XXX...XXXX..X..X..X..X .X.XXXX...XX.XX..XXX X.XX
XX.....X.X...XXX.......X.XX....... ....XX.X..X.X
...

output:

7 1776

result:

ok 2 number(s): "7 1776"

Test #20:

score: 0
Accepted
time: 1ms
memory: 4320kb

input:

86 79
XXXXXXXXXXXXXXXXXXXXXXXXFXXXXXXXXXXXXXXCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXPXXQXTI
X.X...X.XXX. ..X.XX.X....XX.  .X..X..X.X..X...X.....XX. .X.X..X.XX..X XXXXX.XXX
X.XXXX....X.X...X.X. .X..............X ...X. ....X... ...X..XXX .... X..XX....A
XX.X.XX.X X.XXX.XXX.XXX.XX..XX..X.X X.XXXX.XXXX.XXXXXX...

output:

7 2607

result:

ok 2 number(s): "7 2607"

Test #21:

score: 0
Accepted
time: 1ms
memory: 3748kb

input:

32 62
XXJXXXXXXXXXXXXTXXXXEXXXXXXXXXXXXXXXXXXXXXXRXCXXXXXVXXXXXXXXXX
MXX...XXX.XX..X..XX.. XX.XX.XX.XX.XXX..X.XX.X.XXX..X....X...XX
X........X....X.X..X.XXX..X.XX.X.XXX.XXXX...XX..XX..X.XX.X.X.X
U.XXXXXXX..XXX.XXXXXXXXX.X.XXXX......X.X..XXX.. .X..X..X.XXX.X
X.X  X..X.XX. ..X..XXX..XXXXX..X.X..XXXXXX...

output:

11 566

result:

ok 2 number(s): "11 566"

Test #22:

score: 0
Accepted
time: 1ms
memory: 4572kb

input:

100 100
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X..................................................................................................X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...

output:

1 0

result:

ok 2 number(s): "1 0"

Test #23:

score: 0
Accepted
time: 1ms
memory: 3632kb

input:

100 100
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX
XX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X...

output:

0 4802

result:

ok 2 number(s): "0 4802"

Test #24:

score: 0
Accepted
time: 0ms
memory: 3652kb

input:

100 100
AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXB
X..................................................................................................X
X............................................................................................

output:

0 9604

result:

ok 2 number(s): "0 9604"

Test #25:

score: 0
Accepted
time: 4ms
memory: 4636kb

input:

100 100
XXXXXXXXXXXXXBXXXXXXXXXXXXXXXXSXXXXXXXXXXXXXXXXFXXXXXXXXXXXXXUXXXXXXXXXXXXXXXGXXXXXXXXXXXTXXXXXXXXXA
X..................................................................................................X
X............................................................................................

output:

1 0

result:

ok 2 number(s): "1 0"

Test #26:

score: 0
Accepted
time: 1ms
memory: 4636kb

input:

100 100
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X..................................................................................................X
X............................................................................................

output:

1 0

result:

ok 2 number(s): "1 0"

Test #27:

score: -100
Wrong Answer
time: 59ms
memory: 4636kb

input:

100 100
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
A..................................................................................................A
A............................................................................................

output:

1 -3755164

result:

wrong answer 2nd numbers differ - expected: '0', found: '-3755164'