QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#747241 | #5485. MazeMan | suryaaprakassh | AC ✓ | 342ms | 11412kb | C++20 | 3.4kb | 2024-11-14 16:40:43 | 2024-11-14 16:40:43 |
Judging History
answer
#include <bits/stdc++.h>
// pbds
/*#include <ext/pb_ds/assoc_container.hpp> // Common file*/
/*#include <ext/pb_ds/tree_policy.hpp>*/
/**/
/*using namespace __gnu_pbds;*/
using namespace std;
#ifdef LOCAL
#include "debug.h"
#else
#define debug(x...) 42
#endif
#define fast_io \
ios_base::sync_with_stdio(false); \
cin.tie(NULL); \
cout.tie(NULL);
#define ll long long
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
/*typedef tree<int, null_type, less<int>, rb_tree_tag,*/
/* tree_order_statistics_node_update>*/
/* ordered_set;*/
bool vis[105][105];
bool cnt[105][105];
vector<string> v;
map<char, vector<pair<int, int>>> mp;
map<pair<int, int>, vector<char>> mpp;
map<char, ll> peop;
void dfs(int i, int j, int n, int m, char a) {
if (i < 0 || j < 0 || i >= n || j >= m || vis[i][j] || v[i][j] == 'X')
return;
vis[i][j] = 1;
if (v[i][j] == '.' || v[i][j] == a || v[i][j] == ' ') {
ll key = i * 1000 + j;
if (v[i][j] == '.') {
peop[a]++;
cnt[i][j] = 1;
mpp[{i, j}].push_back(a);
}
if (mp.find(key) != mp.end()) {
mp[a].push_back({i, j});
} else {
mp[a] = {{i, j}};
}
dfs(i - 1, j, n, m, a);
dfs(i + 1, j, n, m, a);
dfs(i, j - 1, n, m, a);
dfs(i, j + 1, n, m, a);
}
}
void solve() {
ll n, m;
cin >> n >> m;
string a;
v.resize(n);
getline(cin, a);
ll dot = 0;
for (int i = 0; i < n; i++) {
getline(cin, v[i]);
}
set<int> un;
memset(cnt, 0, sizeof cnt);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
dot += (v[i][j] == '.');
if (v[i][j] == 'X' || v[i][j] == '.' || v[i][j] == ' ')
continue;
memset(vis, 0, sizeof vis);
dfs(i, j, n, m, v[i][j]);
}
}
vector<pair<int, char>> vp;
for (auto c : peop) {
vp.push_back({c.second, c.first});
}
sort(rall(vp));
vector<vector<bool>> check(n, vector<bool>(m, 0));
ll score = 0;
set<char> curr;
for (auto x : mpp) {
if (x.second.size() == 1 && curr.find(*x.second.begin()) == curr.end()) {
if (!check[x.first.first][x.first.second]) {
curr.insert(*x.second.begin());
check[x.first.first][x.first.second] = 1;
}
continue;
}
char fuck = 'Z';
char fc = 0;
bool idd = 1;
for (auto y : x.second) {
if (curr.find(y) != curr.end()) {
idd = 0;
check[x.first.first][x.first.second] = 1;
break;
}
if (peop[y] > fc) {
fc = peop[y];
fuck = y;
}
}
if (idd && fuck != 'Z') {
check[x.first.first][x.first.second] = 1;
curr.insert(fuck);
}
}
cout << curr.size() << " ";
int nvis = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
nvis += cnt[i][j];
}
}
cout << (dot - nvis) << "\n";
}
int main() {
fast_io;
#ifdef LOCAL
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
freopen("output.txt", "w", stderr);
#endif
ll t = 1;
/*cin >> t;*/
while (t--) {
#ifdef LOCAL
cout << "TEST CASE " << t + 1 << "\n";
#endif
solve();
}
#ifdef LOCAL
cout << endl
<< "finished in " << clock() * 1.0 / CLOCKS_PER_SEC << " sec\n\n";
#endif
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3604kb
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: 3588kb
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: 3584kb
input:
3 5 NAQXX X X.X XXXXX
output:
0 1
result:
ok 2 number(s): "0 1"
Test #4:
score: 0
Accepted
time: 1ms
memory: 3900kb
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: 3596kb
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: 3816kb
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: 3600kb
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: 0ms
memory: 3860kb
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: 1ms
memory: 3848kb
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: 3692kb
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: 3676kb
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: 3716kb
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: 3584kb
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: 3588kb
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: 3832kb
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: 3664kb
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: 3620kb
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: 3556kb
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: 3660kb
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: 3692kb
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: 3892kb
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: 2ms
memory: 4820kb
input:
100 100 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X..................................................................................................X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
output:
1 0
result:
ok 2 number(s): "1 0"
Test #23:
score: 0
Accepted
time: 0ms
memory: 3852kb
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: 3896kb
input:
100 100 AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXB X..................................................................................................X X............................................................................................
output:
0 9604
result:
ok 2 number(s): "0 9604"
Test #25:
score: 0
Accepted
time: 25ms
memory: 6684kb
input:
100 100 XXXXXXXXXXXXXBXXXXXXXXXXXXXXXXSXXXXXXXXXXXXXXXXFXXXXXXXXXXXXXUXXXXXXXXXXXXXXXGXXXXXXXXXXXTXXXXXXXXXA X..................................................................................................X X............................................................................................
output:
1 0
result:
ok 2 number(s): "1 0"
Test #26:
score: 0
Accepted
time: 0ms
memory: 5936kb
input:
100 100 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X..................................................................................................X X............................................................................................
output:
1 0
result:
ok 2 number(s): "1 0"
Test #27:
score: 0
Accepted
time: 342ms
memory: 11412kb
input:
100 100 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA A..................................................................................................A A............................................................................................
output:
1 0
result:
ok 2 number(s): "1 0"
Test #28:
score: 0
Accepted
time: 113ms
memory: 5316kb
input:
100 100 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA A A A ...
output:
0 0
result:
ok 2 number(s): "0 0"
Test #29:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
100 100 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X..................................................................................................X X............................................................................................
output:
0 9604
result:
ok 2 number(s): "0 9604"
Test #30:
score: 0
Accepted
time: 5ms
memory: 3952kb
input:
100 100 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXA AX...........................................................................................
output:
0 9216
result:
ok 2 number(s): "0 9216"
Test #31:
score: 0
Accepted
time: 0ms
memory: 3884kb
input:
5 10 ABCDEXXXXX FXXX . ..X G...XXX .X HXXX ..XXX IJKLMXXXXX
output:
3 0
result:
ok 2 number(s): "3 0"