QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#756149#8058. Binary vs TernaryKalimos#WA 4ms3780kbC++231.6kb2024-11-16 19:10:212024-11-16 19:10:21

Judging History

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

  • [2024-11-16 19:10:21]
  • 评测
  • 测评结果:WA
  • 用时:4ms
  • 内存:3780kb
  • [2024-11-16 19:10:21]
  • 提交

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;
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,x + 1 });
	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)
{
	num++;
	int len = a.size()-1;
	int i = 0;

	while(num--)
	{
		i++;
		otoz(len - i);
		a.pop_back();
	
	}
	q.push({ len - num + 1,len });
	ztoo(len - num + 1);
	



}
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.size() == 1 || b.size() == 1)
	{
		if (a != b)
		{
			cout << -1 << endl;
			return;


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


	}
	if (a == b)
	{

		cout << 0 << endl;
		return;

	}
	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 = 1;i < len;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: 3780kb

input:

3
1
111
110110
1101010
1111
111111

output:

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

result:

ok Haitang Suki (3 test cases)

Test #2:

score: -100
Wrong Answer
time: 4ms
memory: 3780kb

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:

10
3 4
4 5
3 4
4 5
2 3
3 4
1 2
2 3
7 5
6 7
-1
15
1 2
2 3
3 4
3 4
4 5
2 3
3 4
1 2
2 3
0 1
1 2
7 5
6 7
1 2
2 3
1
1 2
7
1 2
1 3
2 3
1 3
2 3
3 4
4 5
10
2 3
3 4
2 3
3 4
1 2
2 3
0 1
1 2
6 4
5 6
12
2 3
4 5
3 4
4 5
2 3
3 4
1 2
2 3
0 1
1 2
7 5
6 7
7
2 3
1 2
2 3
0 1
1 2
5 3
4 5
-1
14
1 2
4 5
3 4
4 5
2 3
3 4
1...

result:

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