Are They Equal
#include<bits/stdc++.h>
using namespace std;
int n;
string deal(string s,int & e) {
int i;
while(s.size()>0&&s[0]=='0') {
s.erase(s.begin());
}
if(s[0]=='.') {
s.erase(s.begin());
while(s.size()>0&&s[0]=='0') {
s.erase(s.begin());
e--;
}
} else {
while(i<s.size()&&s[i]!='.') {
i++;
e++;
}
if(s.size()>i){
s.erase(s.begin()+i);
}
}
if(s.size()==0) {
e=0;
}
int num=0,k=0;
string answer;
while(num<n) {
if(k<s.size()) {
answer+=s[k++];
}
else{
answer+='0';
}
num++;
}
return answer;
}
int main() {
string s1,s2,s3,s4;
int e1=0,e2=0;
while(cin>>n>>s1>>s2) {
s3=deal(s1,e1);
s4=deal(s2,e2);
if(s3==s4) {
cout<<"YES 0."<<s3<<"*10^"<<e1<<endl;
} else {
cout<<"NO 0."<<s3<<"*10^"<<e1<<" 0."<<s4<<"*10^"<<e2<<endl;
}
}
return 0;
}
using namespace std;
int n;
string deal(string s,int & e) {
int i;
while(s.size()>0&&s[0]=='0') {
s.erase(s.begin());
}
if(s[0]=='.') {
s.erase(s.begin());
while(s.size()>0&&s[0]=='0') {
s.erase(s.begin());
e--;
}
} else {
while(i<s.size()&&s[i]!='.') {
i++;
e++;
}
if(s.size()>i){
s.erase(s.begin()+i);
}
}
if(s.size()==0) {
e=0;
}
int num=0,k=0;
string answer;
while(num<n) {
if(k<s.size()) {
answer+=s[k++];
}
else{
answer+='0';
}
num++;
}
return answer;
}
int main() {
string s1,s2,s3,s4;
int e1=0,e2=0;
while(cin>>n>>s1>>s2) {
s3=deal(s1,e1);
s4=deal(s2,e2);
if(s3==s4) {
cout<<"YES 0."<<s3<<"*10^"<<e1<<endl;
} else {
cout<<"NO 0."<<s3<<"*10^"<<e1<<" 0."<<s4<<"*10^"<<e2<<endl;
}
}
return 0;
}