QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#878485 | #9621. 连方 | galiyuu | WA | 0ms | 3712kb | C++23 | 2.5kb | 2025-02-01 15:34:24 | 2025-02-01 15:34:27 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for(int i=a;i<n;++i)
#define per(i,a,n) for(int i=n-1;i>=a;--i)
#define pb push_back
#define mp make_pair
#define eb emplace_back
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define endl '\n'
#define SZ(x) ((ll)(x).size())
typedef vector<int> vi;
typedef vector<long long> vl;
typedef long long ll;
typedef pair<int,int> pii;
typedef double db;
mt19937 mrand(random_device{}());
int rnd(int x){return mrand()%x;}
const ll mod=998244353;
signed main() {
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int tc;
cin>>tc;
while (tc--) {
int n;
string a,b;
cin>>n;
cin>>a>>b;
vector<vi> ans(7,vi(n));
vi e_a,e_b;
int cnt1=0,cnt2=0;
int ok1=1,ok2=1;
for (int i=0,j=0;i<n;i++) {
if (a[i]=='.') ok1=0;
j=i;
while (j<n&&a[i]==a[j]) j++;
if (a[i]=='#') cnt1++;
i=j-1;
}
for (int i=0,j=0;i<n;i++) {
if (b[i]=='.') ok2=0;
j=i;
while (j<n&&b[i]==b[j]) j++;
if (b[i]=='#') cnt2++;
i=j-1;
}
if (ok1||ok2) {
cout<<"No"<<endl;
continue;
}
// cerr<<cnt1<<" "<<cnt2<<endl;
int usd1=0,usd2=0;
if (cnt1==1) {
for (int i=0;i<n;i++) {
if (a[i]=='.') e_a.pb(i);
}
} else {
for (int i=0;i<n;i++) {
if (a[i]=='.') ans[1][i]=1;
else e_a.pb(i);
}
usd1=1;
}
if (cnt2==1) {
for (int i=0;i<n;i++) {
if (b[i]=='.') e_b.pb(i);
}
} else {
for (int i=0;i<n;i++) {
if (b[i]=='.') ans[5][i]=1;
else e_b.pb(i);
}
usd2=1;
}
// for (auto x:e_a) cerr<<x<<" ";
// cerr<<endl;
// for (auto x:e_b) cerr<<x<<" ";
// cerr<<endl<<endl;
int sz1=SZ(e_a),sz2=SZ(e_b);
int mnd=1E8,tp=-1,dw=-1;
for (int i=0;i<sz1;i++) {
auto it=lower_bound(all(e_b),e_a[i])-e_b.begin();
if (SZ(e_b)&&it<SZ(e_b)) {
int d=abs(e_a[i]-e_b[it]);
if (d<mnd) {
mnd=d;
tp=e_a[i],dw=e_b[it];
}
}
it++;
if (SZ(e_b)&&it<SZ(e_b)) {
int d=abs(e_a[i]-e_b[it]);
if (d<mnd) {
mnd=d;
tp=e_a[i],dw=e_b[it];
}
}
}
// cerr<<tp<<" "<<dw<<endl;
if (abs(tp-dw)>(4-usd1-usd2)) {
cout<<"No"<<endl;
continue;
}
int t=1+usd1,e=5-usd2;
int nw=tp;
for (int i=t;i<=e;i++) {
ans[i][nw]=1;
if (nw==dw) continue;
else if (nw<dw) nw++;
else nw--;
}
cout<<"Yes"<<endl;
cout<<a<<endl;
for (int i=1;i<=5;i++) {
for (int j=0;j<n;j++) {
if (ans[i][j]) cout<<"#";
else cout<<".";
}
cout<<endl;
}
cout<<b<<endl;
}
}
詳細信息
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3712kb
input:
5 4 #..# .##. 5 ##.#. .#.## 6 ###### .####. 27 .######.######.####.#.##### .####...####..#.......##### 10 ########## ##########
output:
Yes #..# .##. #... #... #... #... .##. Yes ##.#. ..#.# .#... .#... .#... #.#.. .#.## No Yes .######.######.####.#.##### #......#......#....#.#..... .#......................... .#......................... .#......................... #....###....##.#######..... .####...####..#.......##### No
result:
wrong answer Testcase 5: output is NO, but jury's answer is YES.