RT.
https://www.luogu.com.cn/record/155894403
本来第五个测试点是 0.000,但是输出了 -0.000
#include<bits/stdc++.h>
using namespace std;
const int N=1000005;
char s[N],x[N];
bool nw;
int fh=1,cnt;
long long zb,yb;
int main(){
scanf(" %s",s);
int sz=strlen(s);
for(int i(0);i<sz;++i)if(s[i]>='a'&&s[i]<='z'){
while(i<sz&&s[i]>='a'&&s[i]<='z')x[++cnt]=s[i],++i;
break;
}
//puts("qwq");
for(int i(0);i<sz;++i){
if(s[i]=='=')nw=1;
else{
long long qwq=0;
if(s[i]=='+')++i;
else if(s[i]=='-')fh=-1,++i;
while(s[i]>='0'&&s[i]<='9'&&i<sz)qwq=qwq*10+s[i]-'0'/*,cout<<i<<'\n'*/,++i;
//cout<<i<<'\n';
if(s[i]==x[1]){
if(!qwq)qwq=1;
i+=cnt;
if(nw)zb-=fh*qwq;
else zb+=fh*qwq;
}
else{
if(nw)yb+=fh*qwq;
else yb-=fh*qwq;
}
--i;
//puts("qwq");
}
fh=1;
}
for(int i(1);i<=cnt;++i)printf("%c",x[i]);
if(yb)printf("=%.3f",1.0*yb/zb);
else puts("=0.000");
return 0;
}
thxqwq