QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#778312 | #9621. 连方 | tjf4# | WA | 0ms | 18068kb | C++20 | 3.8kb | 2024-11-24 13:59:55 | 2024-11-24 13:59:57 |
Judging History
answer
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
using namespace std;
typedef long double db;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll,ll> pii;
typedef vector<pii> vii;
typedef vector<ll> vi;
typedef vector<string> vs;
typedef vector<char> vc;
const int inf=0x3f;
const int N=2e5+10;
ll n,a[8][N],l[N],r[N];
string s,t;
void print() {
cout<<"Yes"<<'\n';
for(int i=1;i<=7;i++) {
for(int j=1;j<=n;j++) {
if(a[i][j]==1) cout<<'#';
else cout<<'.';
}
cout<<'\n';
}
}
int main() {
IOS
int T;
cin>>T;
map<char,int> mp;
mp['#']=1;
mp['.']=0;
while(T--) {
cin>>n>>s>>t;
for(int i=0;i<=7;i++) {
for(int j=0;j<=n+1;j++) {
a[i][j]=0;
}
}
for(int i=1;i<=n;i++) {
a[1][i]=mp[s[i-1]];
a[7][i]=mp[t[i-1]];
}
ll c1=0,c7=0;
for(int i=1;i<=n;i++) {
c1+=a[1][i];
c7+=a[7][i];
}
if(c1==n&&c7==n) {
for(int i=2;i<=6;i++) {
for(int j=1;j<=n;j++) {
a[i][j]=1;
}
}
print();
continue;
}
else if(c1==n||c7==n) {
cout<<"No"<<'\n';
}
else {
for(int i=0;i<=n+1;i++) l[i]=r[i]=0;
for(int i=1;i<=n;i++) l[i]=l[i-1]+a[7][i];
for(int i=n;i>=1;i--) r[i]=r[i+1]+a[7][i];
int idx=0;
for(int i=1;i<=n;i++) {
if(i<n&&a[1][i]==0&&a[1][i+1]==1) idx=i;
if(i>1&&a[1][i]==0&&a[1][i-1]==1) idx=i;
}
a[2][idx]=1;
int lf=-1,rf=-1;
for(int i=idx-1;i>=1;i--) {
if(a[7][i+1]==0&&a[7][i]==1) {
lf=i+1;
rf=i;
break;
}
}
for(int i=idx+1;i<=n;i++) {
if(a[7][i-1]==0&&a[7][i]==1) {
lf=i-1;
rf=i;
break;
}
}
int nx=3;
if(lf!=-1) {
if(lf==idx) {
if(rf>lf) {
for(int i=rf;i<=n;i++) {
if(a[7][i]==1) a[nx][i]=1;
else break;
}
}
else {
for(int i=rf;i>=1;i--) {
if(a[7][i]==1) a[nx][i]=1;
else break;
}
}
nx++;
}
else if(idx<lf) {
for(int i=idx+1;i<=lf;i++) a[nx][i]=1;
nx++;
for(int i=rf;i<=n;i++) {
if(a[7][i]==1) a[nx][i]=1;
else break;
}
nx++;
}
else if(idx>lf) {
for(int i=idx-1;i>=lf;i--) a[nx][i]=1;
nx++;
for(int i=rf;i>=1;i--) {
if(a[7][i]==1) a[nx][i]=1;
else break;
}
nx++;
}
}
else {
for(int i=idx-1;i>=1;i--) {
if(a[7][i+1]==1&&a[7][i]==0) {
lf=i+1;
rf=i;
break;
}
}
for(int i=idx+1;i<=n;i++) {
if(a[7][i-1]==1&&a[7][i]==0) {
lf=i-1;
rf=i;
break;
}
}
nx=3;
if(lf==idx) {
if(rf<lf) {
for(int i=1;i<=rf;i++) a[nx][i]=1;//4
nx++;
for(int i=rf+1;i<=n;i++) {
if(a[7][i]==1) a[nx][i]=1;//5
else break;
}
nx++;
}
else {
for(int i=n;i>=rf;i--) a[nx][i]=1;//4
nx++;
for(int i=rf-1;i>=1;i--) {
if(a[7][i]==1) a[nx][i]=1;//5
else break;
}
nx++;
}
}
else if(lf<idx) {
for(int i=idx-1;i>=lf;i--) a[nx][i]=1;//3
nx++;
for(int i=1;i<=rf;i++) a[nx][i]=1;//4
nx++;
for(int i=rf+1;i<=n;i++) {
if(a[7][i]==1) a[nx][i]=1;//5
else break;
}
nx++;
}
else if(lf>idx) {
for(int i=idx+1;i<=lf;i++) a[nx][i]=1;//3
nx++;
for(int i=n;i>=rf;i--) a[nx][i]=1;//4
nx++;
for(int i=rf-1;i>=1;i--) {
if(a[7][i]==1) a[nx][i]=1;//5
else break;
}
nx++;
}
}
for(int i=nx;i<=6;i++) {
for(int j=1;j<=n;j++) {
a[i][j]=(a[7][j]^1);
}
}
print();
}
}
return 0;
}
//4
//4
//#..#
//.##.
//5
//##.#.
//.#.##
//6
//######
//.####.
//27
//.######.######.####.#.#####
//.####...####..#.......#####
详细
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 18068kb
input:
5 4 #..# .##. 5 ##.#. .#.## 6 ###### .####. 27 .######.######.####.#.##### .####...####..#.......##### 10 ########## ##########
output:
Yes #..# ..#. ...# .##. #..# #..# .##. Yes ##.#. ....# ..##. .#... #.#.. #.#.. .#.## No Yes .######.######.####.#.##### .....................#..... ......................##### #....###....##.#######..... #....###....##.#######..... #....###....##.#######..... .####...####..#.......##### Yes ########...
result:
wrong answer Testcase 1: Connected condition failed.