#P99. Communicating Problem Test 2: The wrong bit (Hard Version)
Communicating Problem Test 2: The wrong bit (Hard Version)
负责人
注意
本题有弱化版 P98。
本题为通信题。
请务必严格按照提交方式进行操作!!!
题目描述
给定两个长度为 且至多有一个字符不同的 01 串 。
请构造两个程序 A 和 B,实现以下操作:
- A 读入 01 串 。
- A 输出一个不大于 的非负整数 。
- B 读入 01 串 和 A 输出的非负整数 。
- B 输出 之间不同的那个位置。
提交方式
程序 A 模板
程序 A 将会读入一个长度为 的 01 串 (但不会读入 的值)。该程序需要输出一个不大于 的非负整数 ,表示它传给程序 B 的信息。
#include <bits/stdc++.h>
using namespace std;
int main()
{
string S;
cin >> S;
int X = 0;
// ...
cout << X << endl;
return 0;
}
程序 B 模板
程序 B 将会在第一行读入一个长度为 的 01 串 (但不会读入 的值),在第二行读入程序 A 传给它的信息——一个不大于 的非负整数 。该程序需要输出一个不大于 的非负整数 ,其含义为「 之间从左到右第 个字符不同」。特别地,给定的两个 01 串有可能完全相同,此时请输出 。
#include <bits/stdc++.h>
using namespace std;
int main()
{
string T;
int X;
cin >> T >> X;
int D = 0;
// ...
cout << D << endl;
return 0;
}
总模板
请将你已经完成的程序 A 和程序 B 粘贴到下面模板中的指定位置,然后直接提交源代码。
// Paste your Program A here
/* ATTENTION!!! THIS IS THE BARRIER!!! */
// Paste your Program B here
注意事项
- 请务必使用以上模板,否则后果自负!!!
- 严禁攻击评测程序,否则按作弊处理!!!
- 你提交的源代码不得超过 行,总长度不得大于 字节。
- 我们编译你的代码时,所使用的编译参数为
-O2 -std=c++14
。 - 本题的时间限制为 秒,空间限制为 512 MB,且均对两个程序分开计算。
提示
对于 的数据,。