QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#645788 | #8935. Puzzle: Easy as Scrabble | 11d10xy | WA | 0ms | 3996kb | C++14 | 1.7kb | 2024-10-16 19:51:27 | 2024-10-16 19:51:28 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
bool flag=true;
int n,m,U[1010],D[1010],L[1010],R[1010];
char mp[1010][1010];
queue<pair<int,int>>q;
inline void upd(int i,int j,char c){
if(i<1||i>n||j<1||j>m)flag=false;
else if(mp[i][j]=='.')mp[i][j]=c;
else if(mp[i][j]!=c)q.emplace(i,j);
}
int main(){
scanf("%d%d",&n,&m);
for(int i=0;i<=n+1;i++)scanf("%s",mp[i]);
for(int i=1;i<=n;i++){
if(mp[i][0]!='.')L[i]=1,upd(i,1,mp[i][0]);
if(mp[i][m+1]!='.')R[i]=m,upd(i,m,mp[i][m]);
}
for(int i=1;i<=m;i++){
if(mp[0][i]!='.')U[i]=1,upd(1,i,mp[0][i]);
if(mp[n+1][i]!='.')D[i]=n,upd(n,i,mp[n+1][i]);
}
for(;!q.empty();){
auto X=q.front();q.pop();
mp[X.first][X.second]='x';
if(L[X.first]==X.second)upd(X.first,++L[X.first],mp[X.first][0]);
if(R[X.first]==X.second)upd(X.first,--R[X.first],mp[X.first][m+1]);
if(U[X.second]==X.first)upd(++U[X.second],X.second,mp[0][X.second]);
if(D[X.second]==X.first)upd(--D[X.second],X.second,mp[n+1][X.second]);
}
if(!flag)return puts("NO"),0;
for(int i=1;i<=n;i++){
if(mp[i][0]!='.')mp[i][L[i]]=mp[i][0];
if(mp[i][m+1]!='.')mp[i][R[i]]=mp[i][m+1];
if(mp[i][0]!='.'&&mp[i][m+1]!='.'&&mp[i][0]!=mp[i][m+1]&&L[i]>R[i])return puts("NO"),0;
}
for(int i=1;i<=m;i++){
if(mp[0][i]!='.')mp[U[i]][i]=mp[0][i];
if(mp[n+1][i]!='.')mp[D[i]][i]=mp[n+1][i];
if(mp[0][i]!='.'&&mp[n+1][i]!='.'&&mp[0][i]!=mp[n+1][i]&&U[i]>D[i])return puts("NO"),0;
}
puts("YES");
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)putchar(isupper(mp[i][j])?mp[i][j]:'.');
puts("");
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3996kb
input:
5 5 .CBA... ....x.. ..x...C A.....B B..x..A C...... .......
output:
YES CBA.. ....C A...B B...A C....
result:
ok Correct.
Test #2:
score: 0
Accepted
time: 0ms
memory: 3652kb
input:
1 2 .... Nx.. ..O.
output:
NO
result:
ok Correct.
Test #3:
score: -100
Wrong Answer
time: 0ms
memory: 3636kb
input:
5 5 .U.N.X. U....xX Ox....X M...xxN Vx....S Ix.x..X ..IBHX.
output:
YES U.NX. .O..X M...N .VB.S .I.HX
result:
wrong answer Unsatisfied x clue at (3,5)