快速读题
将所给字符串分为两个部分,前半部分为a,后半部分为b。求问是否存在某种分法使得a<b
思路:贪心
分割方法:字符串的第一个数一定非零作为a的开头,找到第二个非零数作为b的开头
判断方法:因为\(ab\)长度不超过8,而int型最大约\(2\cdot10^{10}\),所以可以直接判断
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
while(n--)
{
string s;
cin>>s;
int a=s[0]-48;
int i;
for(i=1;s[i];i++)
{
if(s[i]!='0')break;
a=a*10+s[i]-48;
}
int b=0;
for(i;s[i];i++)
{
b=b*10+s[i]-48;
}
if(a<b)printf("%d %d\n",a,b);
else puts("-1");
}
return 0;
}