P3742 umi的函数

时间:2022-05-10
本文章向大家介绍P3742 umi的函数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

题目背景

umi 找到了一个神秘的函数 f。

题目描述

这个函数接受两个字符串 s1,s2。这些字符串只能由小写字母组成,并且具有相同的长度。这个函数的输出是另一个长度与 s1,s2 相同的字符串 g。g 的第 i 个字符等于 s1 的第i 个字符和 s2 的第 i 个字符的最小值,简单来说,g[i]=min(s1[i],s2[i])。

例如:f("ab","ba")= "aa", f("nzwzl","zizez")="niwel".

她现在有两个相同长度的只有小写字母的字符串 x,y。找出任何一个满足 f(x,z)=y

字符串 z。如果找不到这样的字符串的话,请输出-1。

输入输出格式

输入格式:

第一行给出以下两个字符串的长度 n。

第二行给出一个字符串 x。

第三行给出一个字符串 y。

输出格式:

第一行输出一个字符串,代表你找到的符合条件的字符串。找不到的话,请输出-1。

输入输出样例

输入样例#1:

2
ab
aa

输出样例#1:

ba

输入样例#2:

5
nzwzl
niwel

输出样例#2:

xiyez

输入样例#3:

2
ab
ba

输出样例#3:

-1

说明

对于 100%的数据,1<=n<=100。

暴力模拟,

其中有一些思维的细节,。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<algorithm>
 6 #define lli long long int 
 7 using namespace std;
 8 const int MAXN=101;
 9 void read(int &n)
10 {
11     char c='+';int x=0;bool flag=0;
12     while(c<'0'||c>'9')
13     {c=getchar();if(c=='-')flag=1;}
14     while(c>='0'&&c<='9')
15         x=x*10+(c-48),c=getchar();
16     flag==1?n=-x:n=x;
17 }    
18 int n;
19 char a[MAXN],b[MAXN];
20 int main()
21 {    
22     read(n);
23     scanf("%s%s",a,b);
24     for(int i=0;i<n;i++)
25         if(a[i]<b[i])
26         {
27             printf("-1");
28             return 0;
29         }
30     for(int i=0;i<n;i++)
31     {
32         if(a[i]==b[i])
33             cout<<a[i];
34         else 
35             cout<<b[i];
36     }
37     return 0;
38 }