题目大意:
将一个数n分为x和y,需要满足
x+y=n且x与y的各位数之和要小于等于1
首先不能只看格式输入
这个题我们要这样看,要使得x与y的位数最小,当s[i]为偶数的时候,一人一半平分就是最小的,
当s[i]为奇数的时候,就存在一边取大,一边取小的时候了,为了让x与y的位数变小,不能x一直取大或是让y一直取大,轮流取大的时候,就是最小的
反正都是要先取一半,谁多那个1就轮流来,可以采取我这样的将x与y交换的形式
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
int main(){
int t;
cin>>t;
while(t--){
ull x=0,y=0,flat=0;
string s;
cin>>s;
int len=s.length();
for(int i=0;i<len;i++){
x=x*10+(s[i]-'0')/2;
y=y*10+(s[i]-'0'+1)/2;
if((s[i]-'0')%2)
swap(x,y);
}
cout<<x<<" "<<y<<endl;
}
}