CF1400C.Binary String Reconstruction
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Consider the following process. You have a binary string (a string where each character is either 0 or 1) w of length n and an integer x. You build a new binary string s consisting of n characters. The i-th character of s is chosen as follows:
- if the character wi−x exists and is equal to 1, then si is 1 (formally, if i>x and $w_{i-x} = $ 1, then $s_i = $ 1);
- if the character wi+x exists and is equal to 1, then si is 1 (formally, if i+x≤n and $w_{i+x} = $ 1, then $s_i = $ 1);
- if both of the aforementioned conditions are false, then si is 0.
You are given the integer x and the resulting string s. Reconstruct the original string w.
考虑如下过程:你有一个长度为 n 的二进制字符串(即每个字符均为 0 或 1 的字符串)w 和一个整数 x。你将构建一个新的二进制字符串 s,其长度也为 n。s 的第 i 个字符按如下规则确定:
- 若字符 wi−x 存在且等于 1,则 si=1(形式化地,若 i>x 且 wi−x=1,则 si=1);
- 若字符 wi+x 存在且等于 1,则 si=1(形式化地,若 i+x≤n 且 wi+x=1,则 si=1);
- 若上述两个条件均不满足,则 si=0。
现给你整数 x 和结果字符串 s,请重构原始字符串 w。
输入格式
The first line contains one integer t (1≤t≤1000) — the number of test cases.
Each test case consists of two lines. The first line contains the resulting string s (2≤∣s∣≤105, each character of s is either 0 or 1). The second line contains one integer x (1≤x≤∣s∣−1).
The total length of all strings s in the input does not exceed 105.
第一行包含一个整数 t(1≤t≤1000)—— 测试用例的数量。
每个测试用例由两行组成。第一行包含结果字符串 s(2≤∣s∣≤105,s 的每个字符均为 0 或 1)。第二行包含一个整数 x(1≤x≤∣s∣−1)。
输入中所有字符串 s 的总长度不超过 105。
输出格式
For each test case, print the answer on a separate line as follows:
- if no string w can produce the string s at the end of the process, print −1;
- otherwise, print the binary string w consisting of ∣s∣ characters. If there are multiple answers, print any of them.
对于每个测试用例,在单独一行中输出答案,规则如下:
- 如果不存在字符串 w 能在该过程结束时生成字符串 s,则输出 −1;
- 否则,输出由 ∣s∣ 个字符组成的二进制字符串 w。若存在多个合法答案,输出任意一个即可。
输入输出样例
输入#1
3 101110 2 01 1 110 1
输出#1
111011 10 -1
输入解题思路,AI测评打分。不知道怎么写?