ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#211424 | #3803. 激光 | 18112606231 | 18 | 43315ms | 33464kb | C++11 | 5.0kb | 2024-08-11 11:54:06 | 2024-08-11 13:13:14 |
answer
#pragma GCC optimize(2)
#include <bits/stdc++.h>
#define int long long
using namespace std;
int read()
{
int x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9')
{
if (ch == '-')
f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
{
x = (x << 1) + (x << 3) + ch - '0';
ch = getchar();
}
return x * f;
}
int n, m, ans[4][1001][1001], k, x, y, xx, yy, res;
map<pair<int, int>, pair<int, int>> amns;
char c[1001][1001];
bool vis[61][61],viss[61][61];
void dfs(int x, int y, int fx)
{
//cout << x << " " << y << " " << fx << ' ' << res << endl;
if (x < 1 || x > n || y < 1 || y > m)
return;
if (c[x][y] == '#')
return;
if (c[x][y] == 'X')
{
if(viss[x][y])
return;
viss[x][y]=1;
int dx = amns[{x, y}].first, dy = amns[{x, y}].second;
res += 2;
//cout<<dx<<' '<<dy<<endl;
if (fx == 1)
dfs(dx - 1, dy, 1);
else if (fx == 2)
dfs(dx + 1, dy, 2);
else if (fx == 3)
dfs(dx, dy - 1, 3);
else if (fx == 4)
dfs(dx, dy + 1, 4);
// dfs(dx, dy, fx);
}
if (c[x][y] == '/')
{
res++;
if (fx == 1)
dfs(x, y + 1, 4);
else if (fx == 2)
dfs(x, y - 1, 3);
else if (fx == 3)
dfs(x + 1, y, 2);
else if (fx == 4)
dfs(x - 1, y, 1);
}
if (c[x][y] == '\\')
{
res++;
if (fx == 1)
dfs(x, y - 1, 3);
else if (fx == 2)
dfs(x, y + 1, 4);
else if (fx == 3)
dfs(x - 1, y, 1);
else if (fx == 4)
dfs(x + 1, y, 2);
}
if (c[x][y] == '.')
{
if (!vis[x][y])
res++;
vis[x][y]=true;
if (fx == 1)
dfs(x - 1, y, 1);
else if (fx == 2)
dfs(x + 1, y, 2);
else if (fx == 3)
dfs(x, y - 1, 3);
else if (fx == 4)
dfs(x, y + 1, 4);
}
}
signed main()
{
n = read(), m = read();
for (int i = 1; i <= n; i++)
scanf("%s", c[i] + 1);
if (n <= 60 && m <= 60)
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
if (c[i][j] == 'X')
{
k++;
}
}
}
for (int i = 1; i <= k / 2; i++)
{
x = read(), y = read(), xx = read(), yy = read();
amns[{x, y}] = {xx, yy};
amns[{xx, yy}] = {x, y};
}
for (int k = 1; k <= 4; k++)
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
if (c[i][j] == '.')
{
//printf("%lld %lld\n", i, j);
memset(vis, 0, sizeof(vis));
memset(viss, 0, sizeof(viss));
res = 0;
dfs(i, j, k);
printf("%lld ", res);
}
else
{
printf("-1 ");
}
}
puts("");
}
}
}
else
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
ans[0][i][j] = -1;
ans[1][i][j] = -1;
ans[2][i][j] = -1;
ans[3][i][j] = -1;
if (c[i][j] == '.')
{
ans[0][i][j] = 0;
ans[1][i][j] = 0;
ans[2][i][j] = 0;
ans[3][i][j] = 0;
for (int k = i; k >= 1; k--)
{
if (c[k][j] == '#')
break;
ans[0][i][j]++;
}
for (int k = i; k <= n; k++)
{
if (c[k][j] == '#')
break;
ans[1][i][j]++;
}
for (int k = j; k >= 1; k--)
{
if (c[i][k] == '#')
break;
ans[2][i][j]++;
}
for (int k = j; k <= m; k++)
{
if (c[i][k] == '#')
break;
ans[3][i][j]++;
}
}
}
}
for (int i = 0; i <= 3; i++)
{
for (int j = 1; j <= n; j++)
{
for (int k = 1; k <= m; k++)
printf("%lld ", ans[i][j][k]);
printf("\n");
}
}
}
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 3
Accepted
time: 4ms
memory: 1252kb
input:
50 50 .......................#.........#................ ..............................................
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
ok 10000 tokens
Test #2:
score: 3
Accepted
time: 251ms
memory: 17332kb
input:
500 500 ...............................................................................................
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
ok 1000000 tokens
Test #3:
score: 3
Accepted
time: 349ms
memory: 33460kb
input:
1000 1000 #.....#..#...............#..#.##......#......#...........#....#....#.#.......#..........##...
output:
-1 1 1 1 1 1 -1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 -1 1 -1 -1 1 1 1 1 1 1 -1 1 1 1 1 1 1 -1...
result:
ok 4000000 tokens
Test #4:
score: 3
Accepted
time: 1892ms
memory: 33144kb
input:
990 831 ...............................................................................................
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
ok 3290760 tokens
Test #5:
score: 3
Accepted
time: 2972ms
memory: 33460kb
input:
1000 1000 .............................................................................................
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
ok 4000000 tokens
Test #6:
score: 0
Wrong Answer
time: 0ms
memory: 1240kb
input:
3 3 /X\ X.X .X/ 1 2 2 3 2 1 3 2
output:
-1 -1 -1 -1 4 -1 7 -1 -1 -1 -1 -1 -1 4 -1 1 -1 -1 -1 -1 -1 -1 4 -1 1 -1 -1 -1 -1 -1 -1 4 -...
result:
wrong answer 5th words differ - expected: '7', found: '4'
Test #7:
score: 0
Wrong Answer
time: 1ms
memory: 1244kb
input:
7 7 /X.X.X\ X\.\./X ....... X\././X ....... X\./.\X \X.X.X/ 1 2 7 2 1 4 7 4 1 6 7 6 2 1 2 7 4 1 4 7 ...
output:
-1 -1 1 -1 1 -1 -1 -1 -1 2 -1 2 -1 -1 18 33 3 34 3 33 18 -1 -1 4 -1 4 -1 -1 18 33 5 35 5 33 18 ...
result:
wrong answer 16th words differ - expected: '27', found: '33'
Test #8:
score: 0
Wrong Answer
time: 0ms
memory: 1252kb
input:
9 10 #./....\.. ..../.X..# /.X..../.. ./.\./.... ..X../..#. \/.\...\.. ..X...\/.. .X....X..\ ....X.....
output:
-1 1 -1 1 1 1 1 -1 1 1 1 2 17 2 -1 2 -1 12 2 -1 -1 3 -1 3 11 3 29 -1 3 1 30 -1 22 -1 12 -1 29 4 4...
result:
wrong answer 27th words differ - expected: '28', found: '29'
Test #9:
score: 0
Memory Limit Exceeded
input:
50 50 .././.\.\\.\\.\/\\.//..\\..//\./////..\//..//\\... \.....\..../\\/..\/././\.//.\\\.\\/\\\..\//...
output:
result:
Test #10:
score: 0
Wrong Answer
time: 28ms
memory: 1412kb
input:
60 60 X..XXX.../...XXX././X..\..X....XX.X.X./X....XXX....\XXX.X.X. XX..XX.//..XX\.X...X.X...X.....X....
output:
-1 1 1 -1 -1 -1 1 1 1 -1 1 1 1 -1 -1 -1 1 -1 1 -1 -1 1 1 -1 1 1 -1 1 1 1 1 -1 -1 1 -1 1 -1 1 -1 -1 1...
result:
wrong answer 87th words differ - expected: '109', found: '82'
Test #11:
score: 0
Wrong Answer
time: 31ms
memory: 1492kb
input:
60 60 X..XXXX..X...XXX.X.XX..X..XXXXXXX.X.X.XXX.X.XXXX.X.XXXX.XXX. XX..XX.XX..XXX.X...X.X.XXX..X..X....
output:
-1 1 1 -1 -1 -1 -1 1 1 -1 1 1 1 -1 -1 -1 1 -1 1 -1 -1 1 1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 1 -1...
result:
wrong answer 81st words differ - expected: '149', found: '151'
Test #12:
score: 3
Accepted
time: 155ms
memory: 1712kb
input:
60 60 /..........................................................\ ./..................................
output:
-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...
result:
ok 14400 tokens
Test #13:
score: 0
Wrong Answer
time: 76ms
memory: 1424kb
input:
60 55 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. X\.........XX....X.X...XX../\../...X.....
output:
1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
result:
wrong answer 58th words differ - expected: '3216', found: '57'
Test #14:
score: 0
Memory Limit Exceeded
input:
60 60 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. X...\\XXX//../X/////...\..\.\/X.X...
output:
result:
Test #15:
score: 0
Memory Limit Exceeded
input:
60 60 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. X/..\\/..//.././////...\..\.\/......
output:
result:
Test #16:
score: 0
Wrong Answer
time: 2028ms
memory: 33460kb
input:
1000 899 ........X...X..X...X.X.....X.....X...............X.XX.X.X............X..X.X.X..X..............
output:
1 1 1 1 1 1 1 1 -1 1 1 1 -1 1 1 -1 1 1 1 -1 1 -1 1 1 1 1 1 -1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1...
result:
wrong answer 908th words differ - expected: '239', found: '2'
Test #17:
score: 0
Wrong Answer
time: 1768ms
memory: 33460kb
input:
1000 1000 X.....XXXX.X...X.........X..X.XX...X.XX......X........X..X....X....X.X.......X.......X..XX...
output:
-1 1 1 1 1 1 -1 -1 -1 -1 1 -1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 -1 1 -1 -1 1 1 1 -1 1 -1 -1 1 1 1 1 ...
result:
wrong answer 1007th words differ - expected: '1301', found: '2'
Test #18:
score: 0
Wrong Answer
time: 805ms
memory: 33460kb
input:
1000 1000 XXX...XXXXXXXXXXXXXX.XXXXXXXXXXXXXXX.XXX.X.XXXXXX.XX..X.XXXXXXXXXXXXXXXXXXXXXX.XXXXX.XXXXX...
output:
-1 -1 -1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
result:
wrong answer 1011th words differ - expected: '2203', found: '2'
Test #19:
score: 0
Wrong Answer
time: 2803ms
memory: 33464kb
input:
1000 1000 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
output:
1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
result:
wrong answer 1002nd words differ - expected: '420525', found: '2'
Test #20:
score: 0
Wrong Answer
time: 2805ms
memory: 33460kb
input:
1000 1000 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
output:
1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
result:
wrong answer 1002nd words differ - expected: '1000', found: '2'
Test #21:
score: 0
Wrong Answer
time: 2071ms
memory: 33460kb
input:
1000 1000 ...../\..../.\......//././/./\\./../..\/.......\\.\.....\\\\//.\.../.\....\...\../././../\...
output:
1 1 1 1 1 -1 -1 1 1 1 1 -1 1 -1 1 1 1 1 1 1 -1 -1 1 -1 1 -1 -1 1 -1 -1 -1 1 -1 1 1 -1 1 1 -1 -1 1 1 ...
result:
wrong answer 1006th words differ - expected: '9', found: '2'
Test #22:
score: 0
Wrong Answer
time: 2012ms
memory: 33460kb
input:
1000 1000 ......\...................../................................................................
output:
1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
wrong answer 1007th words differ - expected: '8', found: '2'
Test #23:
score: 0
Wrong Answer
time: 2821ms
memory: 33460kb
input:
1000 1000 /............................................................................................
output:
-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...
result:
wrong answer 1001st words differ - expected: '999002', found: '2'
Test #24:
score: 0
Wrong Answer
time: 1784ms
memory: 23800kb
input:
700 1000 /.............................................................................................
output:
-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...
result:
wrong answer 1001st words differ - expected: '489302', found: '2'
Test #25:
score: 0
Wrong Answer
time: 400ms
memory: 33460kb
input:
1000 1000 #.....#\/................\..#\#\\/...../.....#..\........#.\..#\...\.\........\/../../...\...
output:
-1 1 1 1 1 1 -1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 -1 1 1 1 1 ...
result:
wrong answer 1009th words differ - expected: '25', found: '2'
Test #26:
score: 0
Wrong Answer
time: 657ms
memory: 33464kb
input:
1000 1000 .........X.\........\.......#..X............/#....\........./.............X.......X..........
output:
1 1 1 1 1 1 1 1 1 -1 1 -1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 -1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1...
result:
wrong answer 1010th words differ - expected: '62', found: '2'
Test #27:
score: 0
Wrong Answer
time: 1959ms
memory: 33464kb
input:
1000 1000 ...../\\./.X.......X/..../../\.../.X..\X..........\...\..\.X/XX..../.X.....\...X...../XX.....
output:
1 1 1 1 1 -1 -1 -1 1 -1 1 -1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 -1 1 1 -1 -1 1 1 1 -1 1 -1 1 1 -1 -1 1 1 1 ...
result:
wrong answer 1006th words differ - expected: '203', found: '2'
Test #28:
score: 0
Wrong Answer
time: 3258ms
memory: 33464kb
input:
1000 1000 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
output:
1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
result:
wrong answer 1002nd words differ - expected: '964933', found: '2'
Test #29:
score: 0
Wrong Answer
time: 2837ms
memory: 33464kb
input:
1000 1000 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
output:
1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
result:
wrong answer 1002nd words differ - expected: '1000', found: '2'
Test #30:
score: 0
Wrong Answer
time: 2782ms
memory: 33464kb
input:
1000 1000 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
output:
1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
result:
wrong answer 1002nd words differ - expected: '886109', found: '2'
Test #31:
score: 0
Wrong Answer
time: 2719ms
memory: 33464kb
input:
1000 1000 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
output:
1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
result:
wrong answer 1002nd words differ - expected: '547503', found: '2'
Test #32:
score: 0
Wrong Answer
time: 1399ms
memory: 33464kb
input:
1000 1000 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
output:
1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
result:
wrong answer 1010th words differ - expected: '831504', found: '2'
Test #33:
score: 0
Wrong Answer
time: 804ms
memory: 33460kb
input:
1000 1000 \.XXX/\X..X\XXXX.XXXXX.X.X.X/X.\XX.XX.\XXX.XXXXX\X\.XX.XX\XX/X.X.XXXXXXXXXXX.X\XXXXXXXXX/....
output:
-1 1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 1 -1 1 -1 -1 -1 1 -1 -1 -1 1 -1 -...
result:
wrong answer 1005th words differ - expected: '425', found: '2'
Test #34:
score: 0
Wrong Answer
time: 975ms
memory: 33460kb
input:
1000 1000 X..XXXXX.XXXXXXX.XXXXX.X.X.XXXXXXX.XX.XXXX.XXX.XXXXX.X.XXXXXXX.X.XXXXXXX..XX.XXXXXXXXXXX.....
output:
-1 1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 ...
result:
wrong answer 1006th words differ - expected: '835', found: '2'
Test #35:
score: 0
Wrong Answer
time: 869ms
memory: 33460kb
input:
1000 1000 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
output:
1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
result:
wrong answer 1003rd words differ - expected: '999506', found: '2'