Simulation questions. More pit points.
#include <iostream>#include<cstring>#include<cmath>#include<algorithm>#include<cstdio>#include<map>#include<queue>#include<string>#include<stack>#include<vector>using namespacestd;intN;strings,t;structx{stringF; intidx;} ans[5];stringChangestringa) { stringRes; if(A.length ()-2<N) { for(intI=a.length ()-2; i<n;i++) a=a+"0"; Res=A; } Else if(A.length ()-2>N) {res="0."; for(intI=2; i<n+2; i++) res=res+A[i]; } Elseres=A; returnRes;}stringQustringa) { stringRes; if(a.length () = =1&&a[0]=='0')returnA; intpos=-1; for(intI=0; I<a.length (); i++)if(a[i]=='.') pos=i; if(pos==-1) { for(intI=0; I<a.length (); i++) { if(a[i]=='0')Continue; Else { for(intJ=i; J<a.length (); J + +) res=res+A[j]; Break; } } } Else { for(intI=0; i<pos-1; i++) { if(a[i]=='0')Continue; Else { for(intJ=i; j<pos-1; J + +) res=res+A[j]; Break; } } for(inti=pos-1; I<a.length (); i++) res=res+A[i]; } if(res.length () = =0) res="0"; returnRes;}voidRinta) { BOOLling=1; for(intI=0; I<ans[a].f.length (); i++) { if(ans[a].f[i]=='.')Continue; if(ans[a].f[i]!='0') ling=0; } if(Ling) ans[a].idx=0;}voidPUT (inta) {cout<<ans[a].f<<"*10^"<<Ans[a].idx;}intMain () {scanf ("%d",&N); CIN>>s>>T; S=Qu (s); T=qu (t); if(s[0]=='0'&&s[1]=='.') { intnum=0; for(intI=2; I<s.length (); i++) { if(s[i]=='0') num++; Else{ans[0].idx=-num; ans[0].f="0."; for(intJ=i; J<s.length (); J + +) ans[0].f=ans[0].f+S[j]; Break; } } if(ans[0].f.length () = =0) {ans[0].f="0.0"; ans[0].idx=0; } } Else { intpos=-1; for(intI=0; I<s.length (); i++)if(s[i]=='.') pos=i; if(pos!=-1) {ans[0].f="0."; for(intI=0; I<s.length (); i++)if(s[i]!='.') ans[0].f=ans[0].f+R[i]; ans[0].idx=POS; } Else{ans[0].f="0."+s; ans[0].idx=s.length (); }} ans[0].f=change (ans[0].f); if(t[0]=='0'&&t[1]=='.') { intnum=0; for(intI=2; I<t.length (); i++) { if(t[i]=='0') num++; Else{ans[1].idx=-num; ans[1].f="0."; for(intJ=i; J<t.length (); J + +) ans[1].f=ans[1].f+T[j]; Break; } } if(ans[1].f.length () = =0) {ans[1].f="0.0"; ans[1].idx=0; } } Else { intpos=-1; for(intI=0; I<t.length (); i++)if(t[i]=='.') pos=i; if(pos!=-1) {ans[1].f="0."; for(intI=0; I<t.length (); i++)if(t[i]!='.') ans[1].f=ans[1].f+T[i]; ans[1].idx=POS; } Else{ans[1].f="0."+T; ans[1].idx=t.length (); }} ans[1].f=change (ans[1].f); R (0); R1); if(ans[0].f==ans[1].f&&ans[0].idx==ans[1].idx) {printf ("YES"); PUT (0); } Else{printf ("NO"); PUT (0); cout<<" "; PUT (1); cout<<Endl; } return 0;}
PAT (Advanced level) 1060. is they Equal (25)