QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#562515 | #8935. Puzzle: Easy as Scrabble | yhddd | RE | 0ms | 0kb | C++20 | 1.8kb | 2024-09-13 18:05:00 | 2024-09-13 18:05:00 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
int n, m, ans = true, L[1010], R[1010], U[1010], D[1010];
char a[1010][1010];
void dfs(int x, int y){
if(x < 1 || x > n || y < 1 || y > m || L[x] > R[x] || U[y] > D[y]) ans = false;
if(!ans) return;
if(a[x][y] != 'x'){
char c = '\0';
bool fl = false;
if(L[x] == y){
if(c == '\0') c = a[x][0];
else if(c != a[x][0]) fl = true;
}
if(!fl && R[x] == y){
if(c == '\0') c = a[x][m + 1];
else if(c != a[x][m + 1]) fl = true;
}
if(!fl && U[y] == x){
if(c == '\0') c = a[0][y];
else if(c != a[0][y]) fl = true;
}
if(!fl && D[y] == x){
if(c == '\0') c = a[n + 1][y];
else if(c != a[n + 1][y]) fl = true;
}
if(!fl) return;
a[x][y] = 'x';
}
if(L[x] == y){ L[x]++; dfs(x, y + 1); }
if(R[x] == y){ R[x]--; dfs(x, y - 1); }
if(U[y] == x){ U[y]++; dfs(x + 1, y); }
if(D[y] == x){ D[y]--; dfs(x - 1, y); }
}
int main()
{
freopen("easy.in", "r", stdin);
freopen("easy.out", "w", stdout);
int i, j, x, y;
scanf("%d%d", &n, &m);
for(i = 0; i <= n + 1; i++){
scanf("%s", a[i]);
}
for(i = 1; i <= n; i++){
L[i] = (a[i][0] == '.' ? 0 : 1);
R[i] = (a[i][m + 1] == '.' ? m + 1 : m);
}
for(i = 1; i <= m; i++){
U[i] = (a[0][i] == '.' ? 0 : 1);
D[i] = (a[n + 1][i] == '.' ? n + 1 : n);
}
for(i = 1; i <= n; i++){
dfs(i, 1); dfs(i, m);
}
for(i = 1; i <= m; i++){
dfs(1, i); dfs(n, i);
}
if(!ans){ printf("NO"); return 0; }
for(i = 1; i <= n; i++){
if(L[i] > 0) a[i][L[i]] = a[i][0];
if(R[i] <= m) a[i][R[i]] = a[i][m + 1];
}
for(i = 1; i <= m; i++){
if(U[i] > 0) a[U[i]][i] = a[0][i];
if(D[i] > 0) a[D[i]][i] = a[n + 1][i];
}
printf("YES\n");
for(i = 1; i <= n; i++){
for(j = 1; j <= m; j++){
if(a[i][j] == 'x') printf(".");
else printf("%c", a[i][j]);
}
printf("\n");
}
return 0;
}
详细
Test #1:
score: 0
Dangerous Syscalls
input:
5 5 .CBA... ....x.. ..x...C A.....B B..x..A C...... .......