属于数组的应用,倒序比对,比较简单,直接模拟
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
const int N = 1e7;
vector<int> a, b;
bool flag1, flag2;
bool st1[N] = {true}, st2[N] = {true};
int main()
{
string s1, s2;
cin >> s1 >> s2;
memset(st1, true, sizeof st1);
memset(st2, true, sizeof st2);
for(int i = s1.size() - 1; i >= 0; i -- )
a.push_back(s1[i] - '0');
for(int i = s2.size() - 1; i >= 0; i -- )
b.push_back(s2[i] - '0');
for(int i = 0; i < a.size() && i < b.size(); i ++ )
{
if(a[i] < b[i])
{
st1[i] = false;
}
else if(a[i] > b[i])
{
st2[i] = false;
}
}
int x = 0, y = 0;
for(int i = a.size() - 1; i >= 0; i -- )
{
if(st1[i])
{
flag1 = true;
x = x * 10 + a[i];
}
}
for(int i = b.size() - 1; i >= 0; i -- )
{
if(st2[i])
{
flag2 = true;
y = y * 10 + b[i];
}
}
if(flag1)
cout << x << endl;
else
cout << "YODA" << endl;
if(flag2)
cout << y << endl;
else
cout << "YODA" << endl;
return 0;
}