QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#756302#8058. Binary vs TernaryKalimos#WA 1ms3580kbC++231.9kb2024-11-16 19:47:382024-11-16 19:47:39

Judging History

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

  • [2024-11-16 19:47:39]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3580kb
  • [2024-11-16 19:47:38]
  • 提交

answer

#define _CRT_SECURE_NO_WARNINGS 1
#pragma warning(disable:6031)
#include<bits/stdc++.h>
using namespace std;
#define ll long long

string a,b;
int num;
queue<pair<int, int>>q;
map<string, int>m;
vector<int> dp(100030);

void ztoo(int x)
{
	q.push({x-1,x});
	//a[x] = '1';
}
void otoz(int x)
{
	q.push({ x - 1,x });
	q.push({ x+1,x + 2 });
	//a[x] = '0';


}
void p1(int num)
{
	while (num--)
	{
		q.push({ 1,3 });
		q.push({ 2,3 });
		//a.push_back('1');
	}


}
void m1(int num)
{
	

	while(num--)
	{
		q.push({ 1,2 });
		q.push({ 3,4 });
		q.push({ 2,3 });
	
	}

	



}
void write()
{
	cout << q.size() << endl;
	while (!q.empty())
	{
		auto tmp = q.front();
		q.pop();
		cout << tmp.first << " " << tmp.second << endl;



	}



}


void solve()
{
	while (!q.empty())q.pop();
	cin >> a >> b;
	if (a == b)
	{

		cout << 0 << endl;
		return;

	}
	if (a.size() == 1 || b.size() == 1)
	{
		if (a != b)
		{
			cout << -1 << endl;
			return;


		}
		else
		{
			cout << 0 << endl;
			return;
		}


	}
	int numb=0, numa=0;
	for (int i = b.size() - 1;b[i] == '0';i--)
	{
		numb++;
	}
	for (int i = a.size() - 1;a[i] == '0';i--)
	{
		numa++;
	}
	if (numb > numa)
	{
		cout << -1 << endl;
		return;


	}
	else
	{
		while (numb--)
		{
			b.pop_back();
			a.pop_back();
		}


	}

	
	a = 'x' + a;
	b = 'x' + b;
	int len = a.size();
	for (int i = 1;i < len;i++)
	{
		if (a[i] == '0')ztoo(i);
	}
	if (a.size() > b.size())
	{
		int num = a.size() - b.size();
		m1(num);



	}
	else if (a.size() < b.size())
	{
		int num = b.size() - a.size();
		p1(num);


	}
	 len = b.size();
	for (int i = len-1;i >= 1;i--)
	{
		
		 if (b[i] == '0')otoz(i);


	}

	write();



	return;
}



int main()
{
	int tt;
	cin >> tt;
	while (tt--)
		solve();





}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3580kb

input:

3
1
111
110110
1101010
1111
111111

output:

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

result:

ok Haitang Suki (3 test cases)

Test #2:

score: -100
Wrong Answer
time: 0ms
memory: 3476kb

input:

1000
11100
111
1
11110
10001
10
1011
1111
10
1110
1100
11
11010
11
110
11
1
10001
10110
10
10
11111
10000
1001
10
1
11
10111
11
10
1
100
11
10100
1
10
101
11
1100
110
11
1110
1
1001
1
11111
10
10010
10
11001
110
1010
10011
1110
10100
1001
1001
101
100
1
1001
11
101
11
101
1001
1
1
1011
1
10
10
1011
...

output:

8
3 4
4 5
1 2
3 4
2 3
1 2
3 4
2 3
-1
-1
1
1 2
4
1 3
2 3
1 3
2 3
8
2 3
3 4
1 2
3 4
2 3
1 2
3 4
2 3
11
2 3
4 5
1 2
3 4
2 3
1 2
3 4
2 3
1 2
3 4
2 3
4
2 3
1 2
3 4
2 3
-1
10
1 2
1 2
3 4
2 3
1 2
3 4
2 3
1 2
3 4
2 3
7
1 2
1 3
2 3
1 3
2 3
1 3
2 3
11
1 2
2 3
3 4
4 5
1 2
3 4
2 3
2 3
4 5
1 2
3 4
-1
8
1 3
2 3
1...

result:

wrong answer Pans=-1, Jans!=-1 (test case 3)