QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#192630 | #3125. Dango Maker | Camillus# | 33 | 384ms | 132056kb | C++20 | 4.1kb | 2023-09-30 15:02:48 | 2024-07-04 02:13:31 |
Judging History
answer
#include "bits/stdc++.h"
#pragma GCC optimize("O3")
using namespace std;
char t[3000][3000];
int S = 0;
int T = 1;
int cnt_vertexes = 2;
int saved[3000][3000];
int get_input_vertex(int i, int j) {
if (!saved[i][j]) {
saved[i][j] = cnt_vertexes++;
cnt_vertexes++;
}
return saved[i][j];
}
int get_output_vertex(int i, int j) {
if (!saved[i][j]) {
saved[i][j] = cnt_vertexes++;
cnt_vertexes++;
}
return saved[i][j] + 1;
}
int get_vertex(int i, int j) {
if (!saved[i][j]) {
saved[i][j] = cnt_vertexes++;
}
return saved[i][j];
}
struct Edge {
int to = 0;
short f = 0, c = 0;
Edge() = default;
Edge(int to, short c) : to(to), f(0), c(c) {}
};
vector<Edge> edges;
vector<vector<int>> g;
vector<int> p;
vector<int> dist;
void add_edge(int u, int v, int w) {
g[u].push_back(edges.size());
edges.emplace_back(v, w);
g[v].push_back(edges.size());
edges.emplace_back(u, 0);
}
bool bfs() {
memset(dist.data(), 1, sizeof(int) * cnt_vertexes);
int inf = dist[S];
dist[S] = 0;
deque<int> Q = {S};
while (!Q.empty()) {
int u = Q.front();
Q.pop_front();
for (int e_i : g[u]) {
int v = edges[e_i].to;
short f = edges[e_i].f;
short c = edges[e_i].c;
if (f < c && dist[v] > dist[u] + 1) {
dist[v] = dist[u] + 1;
Q.push_back(v);
}
}
}
return dist[T] != inf;
}
int dfs(int u, int flow = INT32_MAX) {
if (u == T) {
return flow;
}
for (; p[u] < g[u].size(); p[u]++) {
int e_i = g[u][p[u]];
int v = edges[e_i].to;
short f = edges[e_i].f;
short c = edges[e_i].c;
if (f < c && dist[v] == dist[u] + 1) {
int res = dfs(v, min(flow, c - f));
if (res) {
edges[e_i].f += res;
edges[e_i ^ 1].f -= res;
return res;
}
}
}
return 0;
}
int dinic() {
int ans = 0;
while (bfs()) {
memset(p.data(), 0, sizeof(int) * cnt_vertexes);
while (int res = dfs(S)) {
ans += res;
}
}
return ans;
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
#ifdef LOCAL
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int n, m;
cin >> n >> m;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> t[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (t[i][j] == 'R') {
get_vertex(i, j);
}
if (t[i][j] == 'W') {
get_vertex(i, j);
}
if (t[i][j] == 'G') {
get_input_vertex(i, j);
get_output_vertex(i, j);
}
}
}
g.resize(cnt_vertexes);
dist.resize(cnt_vertexes);
p.resize(cnt_vertexes);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (t[i][j] == 'R') {
add_edge(S, get_vertex(i, j), 1);
}
if (t[i][j] == 'W') {
add_edge(get_vertex(i, j), T, 1);
}
if (t[i][j] == 'G') {
add_edge(get_input_vertex(i, j), get_output_vertex(i, j), 1);
}
if (i + 2 < n && t[i][j] == 'R' && t[i + 1][j] == 'G' && t[i + 2][j] == 'W') {
add_edge(get_vertex(i, j), get_input_vertex(i + 1, j), 1);
add_edge(get_output_vertex(i + 1, j), get_vertex(i + 2, j), 1);
}
if (j + 2 < m && t[i][j] == 'R' && t[i][j + 1] == 'G' && t[i][j + 2] == 'W') {
add_edge(get_vertex(i, j), get_input_vertex(i, j + 1), 1);
add_edge(get_output_vertex(i, j + 1), get_vertex(i, j + 2), 1);
}
}
}
cout << dinic() << '\n';
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 13
Accepted
Test #1:
score: 13
Accepted
time: 1ms
memory: 5632kb
input:
1 1 G
output:
0
result:
ok single line: '0'
Test #2:
score: 0
Accepted
time: 0ms
memory: 5656kb
input:
1 2 RG
output:
0
result:
ok single line: '0'
Test #3:
score: 0
Accepted
time: 0ms
memory: 5584kb
input:
2 1 W R
output:
0
result:
ok single line: '0'
Test #4:
score: 0
Accepted
time: 1ms
memory: 5600kb
input:
3 2 WW RW WR
output:
0
result:
ok single line: '0'
Test #5:
score: 0
Accepted
time: 1ms
memory: 5592kb
input:
4 4 GRRW GWWR WWWW RGRG
output:
0
result:
ok single line: '0'
Test #6:
score: 0
Accepted
time: 1ms
memory: 5684kb
input:
4 4 RGRR RRRG GRGW RGWW
output:
2
result:
ok single line: '2'
Test #7:
score: 0
Accepted
time: 1ms
memory: 5680kb
input:
4 4 RRGR GRRG WRGW RGWW
output:
3
result:
ok single line: '3'
Test #8:
score: 0
Accepted
time: 1ms
memory: 5596kb
input:
4 4 RGWR GGGW WWGW RWGW
output:
1
result:
ok single line: '1'
Test #9:
score: 0
Accepted
time: 1ms
memory: 5888kb
input:
3 3 RGW GGG WGW
output:
1
result:
ok single line: '1'
Test #10:
score: 0
Accepted
time: 1ms
memory: 5640kb
input:
4 1 W R G W
output:
1
result:
ok single line: '1'
Test #11:
score: 0
Accepted
time: 1ms
memory: 5524kb
input:
4 4 RGWR GWRG WRGW RGWR
output:
3
result:
ok single line: '3'
Test #12:
score: 0
Accepted
time: 1ms
memory: 5652kb
input:
4 4 RWWR GWRG WGGW RGWR
output:
3
result:
ok single line: '3'
Test #13:
score: 0
Accepted
time: 1ms
memory: 5544kb
input:
4 4 RGWR WWRG WRGW RWGR
output:
2
result:
ok single line: '2'
Test #14:
score: 0
Accepted
time: 1ms
memory: 5600kb
input:
4 4 RRRR GGGG WWWW RRRR
output:
4
result:
ok single line: '4'
Test #15:
score: 0
Accepted
time: 1ms
memory: 5676kb
input:
4 4 RRRR GGGR WWWW RRRR
output:
3
result:
ok single line: '3'
Test #16:
score: 0
Accepted
time: 1ms
memory: 5892kb
input:
4 4 RRRR GGGG WWWW RWRR
output:
4
result:
ok single line: '4'
Subtask #2:
score: 20
Accepted
Dependency #1:
100%
Accepted
Test #17:
score: 20
Accepted
time: 1ms
memory: 5668kb
input:
5 5 RRGRR RGRGW RRWRW RGWGW RWWWW
output:
3
result:
ok single line: '3'
Test #18:
score: 0
Accepted
time: 1ms
memory: 5860kb
input:
6 6 RGWRGW RRRGWR RRWGWR WRRRWG GGGGGW WWWWWW
output:
7
result:
ok single line: '7'
Test #19:
score: 0
Accepted
time: 1ms
memory: 5620kb
input:
7 10 RRRGRGWRGW RGGGWRRGWR RWWWWGRRGG RGWRWWGGGW WWRGWRGWGW RGWWGGRGWW RRGWWWWWWW
output:
14
result:
ok single line: '14'
Test #20:
score: 0
Accepted
time: 1ms
memory: 5624kb
input:
10 8 RGWRRRGW RGWGRRGW WRGWGRGW RGWWRGWW GWRRGWWW WRRGRWRR GRGWGRGG WGWWWRWR RGWRGRGW RRWRGWWW
output:
16
result:
ok single line: '16'
Test #21:
score: 0
Accepted
time: 1ms
memory: 5628kb
input:
10 10 RRRRGWRRGW GRGRGRGGRR RGRGWGRRGR RWWWRRGRGW GRGGGRGWGG WRGWWGGRGW GGGRWWWRRR WWGRGWRRGG WWGWGWGGWW RRGWGRWWWW
output:
16
result:
ok single line: '16'
Test #22:
score: 0
Accepted
time: 1ms
memory: 5928kb
input:
10 10 RRRWRGWRGW GGGGGGRRWG WGWRWWGGGW RRRRRRWRRG GGGGGGRGGR WGWWWWGWGW WRRGWRWRGW RGWGRGWGRW GRWRGWWWGG RGWWGWRGWW
output:
19
result:
ok single line: '19'
Test #23:
score: 0
Accepted
time: 1ms
memory: 5620kb
input:
10 10 WGWGRWWGWR RGGWGRWWGR GWRRRRWWWG RGWRGWRRRG GRRWWGGRGG GGGGRWGRGG RRRGWWWWRW WRRRWRGRGR RGWGRWGRWG WRRWGGGWWW
output:
7
result:
ok single line: '7'
Test #24:
score: 0
Accepted
time: 1ms
memory: 5648kb
input:
10 10 GGRRGRGRWR RRWRGWWRRW WGRWWRRRWG GGWWRWGRGR RGGGRRGWRR WRWWWRWWWW WRWGGGGRRR RWGRGRWGGW GWGWWGWGRR GRWGGGWRWW
output:
2
result:
ok single line: '2'
Test #25:
score: 0
Accepted
time: 1ms
memory: 5612kb
input:
10 1 R G R W G G G R G R
output:
0
result:
ok single line: '0'
Test #26:
score: 0
Accepted
time: 1ms
memory: 5584kb
input:
1 10 GGGRWWGGWW
output:
0
result:
ok single line: '0'
Test #27:
score: 0
Accepted
time: 1ms
memory: 5916kb
input:
10 10 RGWRGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRRWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR
output:
27
result:
ok single line: '27'
Test #28:
score: 0
Accepted
time: 1ms
memory: 5848kb
input:
10 10 RGWRGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR GWRWWRGWRG WRGWRGWRGW RGWRGWRGWR GWRWWRGWRG RRGWRGWRGW RGWRGWRGWW
output:
26
result:
ok single line: '26'
Test #29:
score: 0
Accepted
time: 1ms
memory: 5880kb
input:
10 10 RGGRGWGGWR GGRGWRWWRG WRGWRGWRGW GGWGWWRGWR RWRGWRGWRG WRGWRGWRGW RGWRGWRGWR GWWGWRGRRG WRGWRGGRGW RGWRGRRGWR
output:
20
result:
ok single line: '20'
Test #30:
score: 0
Accepted
time: 1ms
memory: 5712kb
input:
10 10 RRRRRRRRRR GGWGGGGGGG WWWWWWWWWW RRRRRRRRRR GGGGGGGGGG WWWWWWWGWW RRRRRRRRRR GGGGGGGGGG WWWWWWWWWW RRRRRRRRRR
output:
28
result:
ok single line: '28'
Test #31:
score: 0
Accepted
time: 1ms
memory: 5876kb
input:
10 10 RRGRRRWRRR GGGGGGGGRG WWWGWWWWWW RRRRRRRRRR GGGGGGGGGG WGRWWWWWWW RRRRRRRRRR GGGGGGGGGG WWWWWWWWWW RRRRRRRRRR
output:
24
result:
ok single line: '24'
Test #32:
score: 0
Accepted
time: 1ms
memory: 5584kb
input:
10 10 RGRRRRRGRR GGGGWGGGGG GWWWWWWRWW RRRRWRRRRR GGGGGGGGGG WWWWWWWWRW RRRRRRRRRR GGGGGWGGGG GWGWWWWGWW RWRRRRRRWW
output:
20
result:
ok single line: '20'
Test #33:
score: 0
Accepted
time: 1ms
memory: 5564kb
input:
10 10 RGWRGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGGRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR
output:
26
result:
ok single line: '26'
Test #34:
score: 0
Accepted
time: 1ms
memory: 5692kb
input:
10 10 RGWRGWRGWR WWRGWRGWRG WRGWRGWRGW RGWRGWRGWR GWRGWWGWRG WRGWRGWRGW RGWRGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR
output:
27
result:
ok single line: '27'
Test #35:
score: 0
Accepted
time: 1ms
memory: 5696kb
input:
10 10 RGWRGWRGWR GWRGWRGWRG WRWWRGWRGW RGWRGWRGWR GWRGWRGWRG WRGWRGWWGW RGWRGWRGWR GWRGWRGWGG WRGWRGWRGW RGWRGWRGWR
output:
27
result:
ok single line: '27'
Test #36:
score: 0
Accepted
time: 1ms
memory: 5724kb
input:
10 10 RGWRGWRGWR GWRRWRGWRG WRGWRGWRGW RGWRGWRGWR GWRGWRGWRG WRGWRGWRGG RGWRGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR
output:
26
result:
ok single line: '26'
Test #37:
score: 0
Accepted
time: 1ms
memory: 5720kb
input:
10 10 RGWRWWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR GWRWWRGWRG WRGWRGWRGW RGWRRWRGWR GWRGWRGWRG RRGWRGWRGW RGWRGWRGWR
output:
26
result:
ok single line: '26'
Test #38:
score: 0
Accepted
time: 1ms
memory: 5700kb
input:
10 10 RGWRGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRWWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR GWRWWRGRRG WRGWRGWRGW RGWRGWRGWW
output:
26
result:
ok single line: '26'
Test #39:
score: 0
Accepted
time: 1ms
memory: 5928kb
input:
10 10 RGWRGWGGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR RWRGWRGWRG WRGWRGWRGW RGWRGWRGWR GWWGWRGWRG WRGWRGGRGW RGWRGRRGWR
output:
24
result:
ok single line: '24'
Test #40:
score: 0
Accepted
time: 1ms
memory: 5928kb
input:
10 10 RGGRGWRGWR GGRGWRWWRG WRGWRGWRGW GGWGGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR
output:
25
result:
ok single line: '25'
Test #41:
score: 0
Accepted
time: 1ms
memory: 5644kb
input:
10 10 RGGRGWRGWR GWWGWRGWRG WRGGRGWRGW RGWRGWRGWR GWRGWGGWRG WGRWRGWGGW RGWRGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWR
output:
25
result:
ok single line: '25'
Test #42:
score: 0
Accepted
time: 1ms
memory: 5616kb
input:
10 10 RGWRGWWGWR GWGGWRGWRG GRGWRGWRGW RGWRGWRRWR GWRGGRGWRG WRRWRGWRGW RGWRGWRGWR GWRGWRGWRG WRGWRWWRGW RGWRGWRGWR
output:
24
result:
ok single line: '24'
Test #43:
score: 0
Accepted
time: 1ms
memory: 5888kb
input:
10 10 RGWRGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRWWRGWR GWRGWRGGRG WRGWRGWRGW RGWRGWRGWR GWRGWWGWRG GRGWRGWGGW RWWRGWRGWR
output:
25
result:
ok single line: '25'
Test #44:
score: 0
Accepted
time: 1ms
memory: 5632kb
input:
10 10 RGWRGWRGWR GWRGWRGWRG WRWWRRGRWW RGWRGWWGWR GWRWWRGWRG WRGWRGWRRW RGWRGWRGWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGWW
output:
25
result:
ok single line: '25'
Test #45:
score: 0
Accepted
time: 1ms
memory: 5640kb
input:
10 10 RGWRGWRGWR GWRGRRGWRW WRGWRGWRGW RGWRGWRGWR GRRGWRGWRG GRGWRGWRGG RGWRGRRGWR WWRGWRGWRG WRGWRGWRGW RGWRGWRGWR
output:
24
result:
ok single line: '24'
Test #46:
score: 0
Accepted
time: 1ms
memory: 5932kb
input:
10 10 RGWRGWRGWR GWGGWRGWRG RRGWRRWRGW RGWRGWRRWR GWRGWRGWRG WRGWRGWRGW RGWRGWRGGR GWRGWRRWRR WRGWRGWRGW RGWRGWRGWR
output:
25
result:
ok single line: '25'
Test #47:
score: 0
Accepted
time: 1ms
memory: 5724kb
input:
10 10 RWWRGWRGWR GWRGWRGWRG WRGWGGWRGW RGWRGWRGWR GWRGWWGGRG WRGWWGWRGW RGWRGWRGWR GWRGWRGGRW WRRWRGWRGW WGWRGWWGWR
output:
21
result:
ok single line: '21'
Test #48:
score: 0
Accepted
time: 1ms
memory: 5696kb
input:
10 10 RGWRGWRGWR GWGGWGGWWG WRGWRGWRRW RGGRWWRGWR GWRRWRGWWG WRGWRWWRGW WGWRGWRGWR GWRGWRGWWG WWGWRGWRGW RGRRGWRGWR
output:
20
result:
ok single line: '20'
Test #49:
score: 0
Accepted
time: 0ms
memory: 5852kb
input:
10 10 RRWRGWRGWR GWRGWRGWRG WRGWRGWRWW RGWRRWRWWR GWGGWRGWRG WRGWWGWRGW RGWRGWRWWR GWRGWRGWRG WWGWRGWRGW RGGRGWRGWW
output:
22
result:
ok single line: '22'
Test #50:
score: 0
Accepted
time: 0ms
memory: 5744kb
input:
10 10 RGWRWWRGWR GWRGWRGWRG WRGRRGWRGW RGWRGWRGRR GWRGWRGWRG WRGWRGWRGW RGGRGWGGWR GWRGWRGWRG RRGRWGWWGW RGWRGWRGWR
output:
22
result:
ok single line: '22'
Test #51:
score: 0
Accepted
time: 0ms
memory: 5804kb
input:
10 10 RGWRGWRGGR GWRGWRWWWG WRGRWGWRRW RGWRGWRGWR GWGGWRGWRR WRGWRGGRGW RGWRGWRGWR GRRGWRGWRG RRGWRGWRGW RGWRGGRGWR
output:
21
result:
ok single line: '21'
Test #52:
score: 0
Accepted
time: 0ms
memory: 5584kb
input:
10 10 RGWRGWRGWR GRRGWRGWRR WRGWRGWWGW RGWRGWRRWR RWRRWRGWRW WRGWRGWRGG RGWRGWRGWR GWRGWRRWRG WRGWRGWRGW RWWRGWRGWR
output:
24
result:
ok single line: '24'
Test #53:
score: 0
Accepted
time: 1ms
memory: 5852kb
input:
10 10 RWRRGWRGWR RWRGGRGWRG WRGWRGWGGW RGWWGWRGWR WWRGWRWRRG WRGRRGWRGW RGWRWWRGWW GWRGWRGWRG WRGWGGWRGW RGWRGWRGWR
output:
22
result:
ok single line: '22'
Subtask #3:
score: 0
Wrong Answer
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Test #54:
score: 67
Accepted
time: 0ms
memory: 5980kb
input:
1 3000 WRGRGRWRRRWGGRWGGWRRRRWWGGGRRRGGGGRRRWRRGRGRGWWRWRWRRWRGGWWWGRRGRGWWGRWRWWGGGWGWRWRWGGRRGRGRRRRWWGWWWGRRRWGRRGWRWGGWGWRRGRWRGWGWWGGWWRRGWGGWGRWWGGWGGGRRGGRRRGWRWGGRWRRWRGRGRWRGGRGGRRRRRGGRRGGGGWWWRGGRRWWRWGWGRRWGWGGWRRGGRWWRGGRRGRGRWRWGRGGWGWWWWWWGWGRRWGGRGGGGGWGGRRRGWRWGWRWGGRGGWGGWGRWWGWRRG...
output:
115
result:
ok single line: '115'
Test #55:
score: 0
Accepted
time: 3ms
memory: 25108kb
input:
3000 1 W W W R R R G W R W R G G G W G G G R G R G G G G R G W G R G W R G R G R W R R R R W R R W G R G R R G G R W R W R W W R W G R G R G W G G G R W R W W W R R W G R G G W G R G G G G G G W G R W W W G G R R R G R R W W W R W W G R R R W G R W W R W W R W R R G W R R W W R R R R W G R R W R G G...
output:
103
result:
ok single line: '103'
Test #56:
score: 0
Accepted
time: 5ms
memory: 6972kb
input:
5 3000 GRGGRRWGWWRRWGWRRGWRGWWRWRRGWRRGRWRRRGWGGRWRRRRWRRRRGWGWGRGWRRRRRWWWRRWRRGWGWRRWRRRRRRRWRRGRWRGRGRGRRRWRRGRRGWRRGWRGRWRRGWRGWWRGWWRGRRGRRGWRRGWWGRWRGWRRRGWWRRWWGGRRGRGWWGRRGWRRGWRRWGRRGRGWRRGWWRGWRRRWRWWRRRWRRGWWGWRRGWGWWRRGWWWRGWRGWRRWWRRRRRGRGRGWRGWWRGRGRRGWWRRGRGWRGRGWRRRGWGGGRGWRGWRGWRRGW...
output:
2477
result:
ok single line: '2477'
Test #57:
score: 0
Accepted
time: 6ms
memory: 21192kb
input:
2000 8 RWRGWRGW GRGRGGGG WGRGWWRR GWWWRRGW GRRGRGRR RGWWGWGR RWRGRGWW RGRRGWWG RRGWWGWG GGGWGRGW RWWWRGRR RRGRGWGW RRGGWWGR RRGWWWWW GRGWRRRW RRGWRGWW RGGRWGWW GWWWGWGW GRGWRRGW GRGRGWGW RRRGRGWW GRGWWRGW RGWRGRWW WRGRRGWW GRRGWWRG RGRWRGRW RWRWGRGG GRRRWGWR WGRRGWWG WRGWGRRW RRGWRGWR GWWRGWWG RGWWW...
output:
2616
result:
ok single line: '2616'
Test #58:
score: -67
Wrong Answer
time: 384ms
memory: 132056kb
input:
1000 1000 WGRWGRRGRGWRWWWWWGWRGRGWGGRRRWGRGRGWGWGRWWGWWRRRRWWRRRRWGGGWGRWRRGGRRRRWRWGWGWRRWGGGRRRRRRWRWGWGGGRRGWRWWWWWRRRWGGRGGWGGRGRWWRWGGGGWRWWWWWWWWGGGWWGGWWRWWWGWRRRGGRWWWWGGGRWGWGRRGRGRGWRRGWGRWWGGWRWWGGGWGRRRRWRWRWRRWRWRWGRGGWGGGWGRRGRWGWWRGGGRWWGGGGWRGGGRWGGWGWWWWGWWGGWGRGGGRWRWRRRGRRGGRGWRRR...
output:
result:
wrong output format Output file not found: ""