题目链接:http://codeforces.com/contest/801/problem/B
题意:定义字符串运算f(x,y)=z;字符串x,y长度相等,对于每一位,字符串z对应的字符为字符串x和y位置的字典序小的字符。现在给你字符串x和z,让你输出一个满足条件的字符串y,如果不存在输出-1;
分析:直接比较x和z对应每一位的字符,如果x和z相等,那么y那一位字符等于字典序大于x的任意;如果x大于z,那么y等于z;如果x小于z,则不存在y,输出-1;
AC代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main() { 4 ios_base::sync_with_stdio(0); 5 //freopen("out1.txt","w",stdout); 6 int n; 7 char a[105],b[105],c[105]; 8 cin>>a; 9 cin>>b; 10 int d=strlen(a); 11 int p=0; 12 for(int i=0;i<d;i++){ 13 if(a[i]>b[i]){ 14 c[i]=b[i]; 15 } 16 else if(a[i]==b[i]){ 17 c[i]='z'; 18 } 19 else if(a[i]<b[i]){ 20 p=1; 21 break; 22 } 23 } 24 if(p==1) cout<<-1<<endl; 25 else { 26 for(int i=0;i<d;i++){ 27 cout<<c[i]; 28 } 29 cout<<endl; 30 } 31 return 0; 32 }