QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#638946 | #8935. Puzzle: Easy as Scrabble | ucup-team173 | WA | 0ms | 3780kb | C++20 | 3.1kb | 2024-10-13 17:23:11 | 2024-10-13 17:23:15 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
void solve() {
int n, m;
cin >> n >> m;
vector<string> s(n + 2);
for(int i = 0; i < n + 2; i++) {
cin >> s[i];
}
string up(m + 1, 0), dw(m + 1, 0), lt(n + 1, 0), rt(n + 1, 0);
for(int i = 1; i <= m; i++) {
up[i] = s[0][i];
dw[i] = s[n + 1][i];
}
for(int i = 1; i <= n; i++) {
lt[i] = s[i][0];
rt[i] = s[i][m + 1];
}
for(int j = 1; j <= m; j++) {
int l = 0, r = n + 1;
if(up[j] != '.') {
for(l = 1; l <= n; l++) {
if(s[l][j] != 'x' && (lt[l] == '.' || lt[l] == up[j])) {
s[l][j] = up[j];
if(lt[l] == up[j]) lt[l] = '.';
break;
} else {
s[l][j] = 'x';
}
}
}
if(dw[j] != '.') {
for(r = n; r; r--) {
if(s[r][j] != 'x' && (lt[r] == '.' || lt[r] == dw[j])) {
s[r][j] = dw[j];
if(lt[r] == dw[j]) lt[r] = '.';
break;
} else {
s[r][j] = 'x';
}
}
}
if(l > n || r <= 0) {
cout << "NO\n";
return;
}
for(int i = l + 1; i < r; i++) {
if(lt[i] != '.' && s[i][j] == '.') {
s[i][j] = lt[i];
lt[i] = '.';
}
}
}
// for(int i = 1; i <= n; i++) {
// for(int j = 1; j <= m; j++) {
// if(s[i][j] == 'x') s[i][j] = '.';
// cout << s[i][j];
// }
// cout << '\n';
// }
for(int i = 1; i <= n; i++) {
if(lt[i] != '.') {
int flg = 0;
for(int j = 1; j <= m; j++) {
if(s[i][j] == '.' || s[i][j] == lt[i]) {
s[i][j] = lt[i];
flg = 1;
break;
}
}
if(!flg) {
cout << "NO\n";
return;
}
}
if(rt[i] != '.') {
int flg = 0;
for(int j = m; j; j--) {
if(s[i][j] == '.' || s[i][j] == rt[i]) {
s[i][j] = rt[i];
flg = 1;
break;
}
}
if(!flg) {
cout << "NO\n";
return;
}
}
}
cout << "YES\n";
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
if(s[i][j] == 'x') s[i][j] = '.';
cout << s[i][j];
}
cout << '\n';
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int t = 1;
// cin >> t;
while(t--) solve();
return 0;
}
/*
5 5
.CBA...
....x..
..x...C
A.....B
B..x..A
C......
.......
1 2
....
Nx..
..O.
5 5
.AB....
A......
A......
A......
A......
A......
.......
*/
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3616kb
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: 3780kb
input:
1 2 .... Nx.. ..O.
output:
NO
result:
ok Correct.
Test #3:
score: 0
Accepted
time: 0ms
memory: 3556kb
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:
ok Correct.
Test #4:
score: -100
Wrong Answer
time: 0ms
memory: 3616kb
input:
10 10 .BAZEMIEKUJ. A..........K B..x.x.x..x. K.........xT A.x..x.....J Hx....x....B Q..x....x.xW S...x......W S...x.xxx..Z ...x......xZ I..x..x.x.xR .QKO.ID..RW.
output:
YES .AZEMIEKUJ B......... K.......T. A........J .H.......B Q.......W. S........W S.O.....ZW QK...D..Z. ...II...R.
result:
wrong answer Row 1 right clue not satisfied.