QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#333757#8058. Binary vs Ternaryucup-team3160#WA 1ms7908kbC++141.3kb2024-02-20 14:59:072024-02-20 14:59:08

Judging History

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

  • [2024-02-20 14:59:08]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:7908kb
  • [2024-02-20 14:59:07]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6+5;
struct Op{
	int l,r;
}op[N];
int len=0;
int a[N],b[N];
void insert(int l,int r){
	op[++len]=(Op){l,r};
}
void output(){
	for(int i=1;i<=len;i++)cout<<op[i].l<<" "<<op[i].r<<"\n";
}
signed main(){
	int T;
	cin>>T;
	while(T--){
		string s,t;
		cin>>s>>t;
		len=0;
		int cnt1=0;
		int lens=s.size(),lent=t.size();
		for(int i=0;i<lens;i++)a[i+1]=s[i]-'0';
		for(int i=0;i<lent;i++){
			b[i+1]=t[i]-'0';
			if(b[i+1])cnt1++;
		}
		if(lens==1){
			if(lent==1&&b[1]==a[1]){
				cout<<0<<"\n";
				continue;
			}
			else cout<<"-1\n";
			continue;
		}
		for(int i=1;i<=lens;i++){
			if(a[i]==0){
				insert(i-1,i);
				a[i]=1;
			}
		}
		insert(lens-1,lens);
		insert(lens-1,lens);
		insert(lens,lens+1);
		a[lens+1]=1;
		lens++;
		if(lens<=lent){
			for(int i=lens;i<lent;i++){
				insert(i-1,i);
				insert(i-1,i);
				insert(i,i+1);
				a[i+1]=1;
			}
		}
		else{
			if(lent==1){
				cout<<"-1\n";
				continue;
			}
			else{
				for(int i=lens;i>lent;i--){
					insert(i-1,i);
					insert(i-2,i-1);
					insert(i-1,i+2);
					insert(i-2,i-1);
				}
			}
		}
		for(int i=2;i<=lent;i++){
			if(a[i]!=b[i]){
				insert(i-1,i);
				insert(i,i+1);
			}
		}
		output();
	}
	return 0;
}

详细

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 7908kb

input:

3
1
111
110110
1101010
1111
111111

output:

-1
2 3
5 6
5 6
5 6
6 7
2 3
3 4
4 5
5 6
6 7
7 8
3 4
3 4
4 5
4 5
4 5
5 6

result:

wrong answer (l,r) is invalid (test case 2)