您的位置:首页 > 产品设计 > UI/UE

0519 G2n#W2B-D Valued Keys

2017-05-20 13:02 316 查看
摘要:给出两个字符串构造第三个串的方法,反过来求给出结果和其中一个求另一个。
原题目:CodeForces
- 801B

Valued Keys

You found a mysterious function f. The function takes two strings s1 and s2.
These strings must consist only of lowercase English letters, and must be the same length.
The output of the function f is another string of the same length. The i-th character of the output is equal to the minimum of the i-th
character of s1 and the i-th character of s2.
For example, f("ab", "ba") = "aa",
andf("nzwzl", "zizez") = "niwel".
You found two strings x and y of the same length and consisting of only lowercase English letters. Find any string z such
that f(x, z) = y, or print -1 if no such string z exists.

Input

The first line of input contains the string x.
The second line of input contains the string y.
Both x and y consist only of lowercase English letters, x and y have
same length and this length is between 1 and 100.

Output

If there is no string z such that f(x, z) = y, print -1.
Otherwise, print a string z such that f(x, z) = y. If there are multiple possible answers, print any of them.
The string z should be the same length as x and y and consist only of lowercase English letters.

Example

Input
ab
aa


Output
ba


Input
nzwzl
niwel


Output
xiyez


Input
ab
ba


Output
-1


Note

The first case is from the statement.
Another solution for the second case is "zizez"
There is no solution for the third case. That is, there is no z such that f("ab", z) =  "ba".

题目理解:找出由z=f(x,y)得到的y=g(x,z)的表达式即可。

注意 :不存在是输出 -1
代码:

#include <cstdio>

#include <cstring>

#include <algorithm>


using namespace std;


char X[102];

char Z[102];

char Y[102];

int len;


int main(){

scanf("%s%s",X,Z);

len=strlen(X);

bool ans = true;

for(int i=0;i<len;i++){

if(X[i]==Z[i]) Y[i]=Z[i];

else if(X[i]>Z[i]) Y[i]=Z[i];

else {

ans = false;

break;

}

}

if(ans) printf("%s",Y);

else printf("-1");

}


2017 05 19
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  A+B problem