QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#610892#8058. Binary vs Ternaryyimg#TL 0ms0kbC++201.2kb2024-10-04 17:58:002024-10-04 17:58:01

Judging History

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

  • [2024-10-04 17:58:01]
  • 评测
  • 测评结果:TL
  • 用时:0ms
  • 内存:0kb
  • [2024-10-04 17:58:00]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
void work()
{
	string A, B;
	cin >> A >> B;
	int lb = B.length();
	if(A.length() == 1 && B.length() == 1){
		if(A == B) cout << "0\n";
		else cout << "-1\n";
		return;
	}
	if(A.length() == 1 || B.length() == 1){
		cout << "-1\n";
		return;
	}
	vector<pair<int, int>> ans;
	for(int i = 0; i < A.size(); ++i){
		if(A[i] == '0') ans.emplace_back(i, i + 1), A[i] = '1';
	}
	while(A.length() < lb){
		ans.emplace_back(A.length() - 1, A.length());
		ans.emplace_back(A.length() - 1, A.length());
		A += '1';
		ans.emplace_back(A.length() - 1, A.length());
	}
	while(A.length() > lb){
		ans.emplace_back(A.length() - 1, A.length());
		ans.emplace_back(A.length(), A.length() + 1);
		A.pop_back();
	}
//	cout << A << "\n";
	for(int i = lb - 1; i >= 0; --i){
		if(B[i] == '0'){
			ans.emplace_back(i, i + 1);
			ans.emplace_back(i + 1, i + 2);
			A[i] = 1;
		}
	}
	if(A != B) while(1);
	cout << ans.size() << "\n";
	for(auto i : ans){
		cout << i.first << " " << i.second << "\n";
	}
}

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	int t;
	cin >> t;
	while(t--)
		work();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Time Limit Exceeded

input:

3
1
111
110110
1101010
1111
111111

output:


result: