QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#192651 | #3125. Dango Maker | Camillus# | 33 | 438ms | 132256kb | C++20 | 4.1kb | 2023-09-30 15:07:14 | 2024-07-04 02:13:34 |
Judging History
answer
#include "bits/stdc++.h"
#pragma GCC optimize("O3,Ofast")
#pragma GCC target("avx,avx2,fma")
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: 5560kb
input:
1 1 G
output:
0
result:
ok single line: '0'
Test #2:
score: 0
Accepted
time: 1ms
memory: 5676kb
input:
1 2 RG
output:
0
result:
ok single line: '0'
Test #3:
score: 0
Accepted
time: 1ms
memory: 5612kb
input:
2 1 W R
output:
0
result:
ok single line: '0'
Test #4:
score: 0
Accepted
time: 1ms
memory: 5716kb
input:
3 2 WW RW WR
output:
0
result:
ok single line: '0'
Test #5:
score: 0
Accepted
time: 1ms
memory: 5656kb
input:
4 4 GRRW GWWR WWWW RGRG
output:
0
result:
ok single line: '0'
Test #6:
score: 0
Accepted
time: 1ms
memory: 5852kb
input:
4 4 RGRR RRRG GRGW RGWW
output:
2
result:
ok single line: '2'
Test #7:
score: 0
Accepted
time: 1ms
memory: 5928kb
input:
4 4 RRGR GRRG WRGW RGWW
output:
3
result:
ok single line: '3'
Test #8:
score: 0
Accepted
time: 1ms
memory: 5920kb
input:
4 4 RGWR GGGW WWGW RWGW
output:
1
result:
ok single line: '1'
Test #9:
score: 0
Accepted
time: 1ms
memory: 5712kb
input:
3 3 RGW GGG WGW
output:
1
result:
ok single line: '1'
Test #10:
score: 0
Accepted
time: 1ms
memory: 5932kb
input:
4 1 W R G W
output:
1
result:
ok single line: '1'
Test #11:
score: 0
Accepted
time: 1ms
memory: 5684kb
input:
4 4 RGWR GWRG WRGW RGWR
output:
3
result:
ok single line: '3'
Test #12:
score: 0
Accepted
time: 1ms
memory: 5852kb
input:
4 4 RWWR GWRG WGGW RGWR
output:
3
result:
ok single line: '3'
Test #13:
score: 0
Accepted
time: 1ms
memory: 5624kb
input:
4 4 RGWR WWRG WRGW RWGR
output:
2
result:
ok single line: '2'
Test #14:
score: 0
Accepted
time: 1ms
memory: 5624kb
input:
4 4 RRRR GGGG WWWW RRRR
output:
4
result:
ok single line: '4'
Test #15:
score: 0
Accepted
time: 1ms
memory: 5628kb
input:
4 4 RRRR GGGR WWWW RRRR
output:
3
result:
ok single line: '3'
Test #16:
score: 0
Accepted
time: 1ms
memory: 5680kb
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: 5664kb
input:
5 5 RRGRR RGRGW RRWRW RGWGW RWWWW
output:
3
result:
ok single line: '3'
Test #18:
score: 0
Accepted
time: 1ms
memory: 5696kb
input:
6 6 RGWRGW RRRGWR RRWGWR WRRRWG GGGGGW WWWWWW
output:
7
result:
ok single line: '7'
Test #19:
score: 0
Accepted
time: 1ms
memory: 5904kb
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: 5720kb
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: 5664kb
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: 5960kb
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: 5660kb
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: 5716kb
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: 5648kb
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: 5712kb
input:
1 10 GGGRWWGGWW
output:
0
result:
ok single line: '0'
Test #27:
score: 0
Accepted
time: 1ms
memory: 5928kb
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: 5756kb
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: 5968kb
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: 5736kb
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: 5660kb
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: 5968kb
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: 5720kb
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: 5896kb
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: 5704kb
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: 5696kb
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: 5960kb
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: 5896kb
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: 5692kb
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: 5720kb
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: 5968kb
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: 5760kb
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: 5724kb
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: 5720kb
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: 5660kb
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: 5724kb
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: 0ms
memory: 5952kb
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: 5668kb
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: 1ms
memory: 5588kb
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: 1ms
memory: 5692kb
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: 1ms
memory: 5660kb
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: 1ms
memory: 5724kb
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: 5696kb
input:
10 10 RWRRGWRGWR RWRGGRGWRG WRGWRGWGGW RGWWGWRGWR WWRGWRWRRG WRGRRGWRGW RGWRWWRGWW GWRGWRGWRG WRGWGGWRGW RGWRGWRGWR
output:
22
result:
ok single line: '22'
Subtask #3:
score: 0
Time Limit Exceeded
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Test #54:
score: 67
Accepted
time: 1ms
memory: 5944kb
input:
1 3000 WRGRGRWRRRWGGRWGGWRRRRWWGGGRRRGGGGRRRWRRGRGRGWWRWRWRRWRGGWWWGRRGRGWWGRWRWWGGGWGWRWRWGGRRGRGRRRRWWGWWWGRRRWGRRGWRWGGWGWRRGRWRGWGWWGGWWRRGWGGWGRWWGGWGGGRRGGRRRGWRWGGRWRRWRGRGRWRGGRGGRRRRRGGRRGGGGWWWRGGRRWWRWGWGRRWGWGGWRRGGRWWRGGRRGRGRWRWGRGGWGWWWWWWGWGRRWGGRGGGGGWGGRRRGWRWGWRWGGRGGWGGWGRWWGWRRG...
output:
115
result:
ok single line: '115'
Test #55:
score: 0
Accepted
time: 4ms
memory: 24812kb
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: 6ms
memory: 6944kb
input:
5 3000 GRGGRRWGWWRRWGWRRGWRGWWRWRRGWRRGRWRRRGWGGRWRRRRWRRRRGWGWGRGWRRRRRWWWRRWRRGWGWRRWRRRRRRRWRRGRWRGRGRGRRRWRRGRRGWRRGWRGRWRRGWRGWWRGWWRGRRGRRGWRRGWWGRWRGWRRRGWWRRWWGGRRGRGWWGRRGWRRGWRRWGRRGRGWRRGWWRGWRRRWRWWRRRWRRGWWGWRRGWGWWRRGWWWRGWRGWRRWWRRRRRGRGRGWRGWWRGRGRRGWWRRGRGWRGRGWRRRGWGGGRGWRGWRGWRRGW...
output:
2477
result:
ok single line: '2477'
Test #57:
score: 0
Accepted
time: 7ms
memory: 21232kb
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: 0
Accepted
time: 438ms
memory: 132256kb
input:
1000 1000 WGRWGRRGRGWRWWWWWGWRGRGWGGRRRWGRGRGWGWGRWWGWWRRRRWWRRRRWGGGWGRWRRGGRRRRWRWGWGWRRWGGGRRRRRRWRWGWGGGRRGWRWWWWWRRRWGGRGGWGGRGRWWRWGGGGWRWWWWWWWWGGGWWGGWWRWWWGWRRRGGRWWWWGGGRWGWGRRGRGRGWRRGWGRWWGGWRWWGGGWGRRRRWRWRWRRWRWRWGRGGWGGGWGRRGRWGWWRGGGRWWGGGGWRGGGRWGGWGWWWWGWWGGWGRGGGRWRWRRRGRRGGRGWRRR...
output:
69578
result:
ok single line: '69578'
Test #59:
score: -67
Time Limit Exceeded
input:
3000 3000 RWRWRWWGRRWGWGWGWRGGRWRGRGWGGRRRRWRRWWGRGWRRRWGGRWWGRGWWGGGWRGWRGGGRRWWRRGGGWGGWRGWWWRRWRGGRRRWGGWWWGRGGRRGWRRRGWGWWWGGWGGRGGWRWWWRWGRWGRWRRWGRRGWWWGRWGRWGGGGWWGGRRRGWGRRWRGGWGGGGRGGGRWGWRRRRWWRRRRWWGRGRWRGRRWGGRGWRWGGWRWWGRGRRRGRWWGRWRGGWGRWWGGWRGWWRRGWGWRGWRWGGRWGGRWWWGWGWRGRGGWRGWRGRWRR...