A1060 Are They Equal (25 分)
#include <string>
#include <iostream>
#include <math.h>
#include <algorithm>
using namespace std;
int n;
string deal(string a,int &e){
int k=0;
string b;
while(a.size()>0&&a[0]=='0'){
a.erase(a.begin());
}
if(a[0]=='.'){
a.erase(a.begin());
while(a.size()>0&&a[0]=='0'){
a.erase(a.begin());
e--;
}
}else{
while(a.size()>k&&a[k]!='.'){
k++;
e++;
}
if(k<a.size()){
a.erase(a.begin()+k);
}
}
if(a.size()==0)e=0;
int num=0;
k=0;
while(num<n){
if(k<a.size())b+=a[k++];
else b+='0';
num++;
}
return b;
}
int main(){
int e1=0,e2=0;
string s1,s2,s3,s4;
cin >> n >> s1 >> s2;
s3=deal(s1,e1);
s4=deal(s2,e2);
if(s3==s4&&e1==e2){
cout << "YES 0." << s3 << "*10^" << e1;
}else{
cout << "NO 0." << s3 << "*10^"<<e1<<" 0."<<s4<<"*10^"<<e2;
}
return 0;
}