QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#645788#8935. Puzzle: Easy as Scrabble11d10xyWA 0ms3996kbC++141.7kb2024-10-16 19:51:272024-10-16 19:51:28

Judging History

你现在查看的是最新测评结果

  • [2024-10-16 19:51:28]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3996kb
  • [2024-10-16 19:51:27]
  • 提交

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)