烦请各位大佬看看,本机测评AC,洛谷测评TLE
查看原帖
烦请各位大佬看看,本机测评AC,洛谷测评TLE
453393
DengYuxin楼主2022/7/28 17:24

代码如下,不知为何T掉了

#include<bits/stdc++.h>
using namespace std;
int main()
{
    register char ch(getchar()),C;
    register int x(0),f(1),l_x(0),l_c(0),r_x(0),r_c(0),flag(0),is_f(1);//false表示当前在右侧
    while(~ch)
    {
        if(ch^'-')
        {
            if(ch^'=')
            {
                if(ch^'+') {
                    if(ch>='a'&&ch<='z')
                    {
                        flag?(is_f?(r_x+=f):(r_x+=x*f)):(is_f?(l_x+=f):(l_x+=x*f));
                        is_f=0;
                        C=ch,x=0;
                    }
                    else{
                        if(ch^'\n') {
                            while (ch >= '0' && ch <= '9') x = (x << 1) + (x << 3) + (ch ^ 48), ch = getchar();
                            if ((!(~ch)) || ch < 'a' || ch > 'z') flag ? (r_c += x * f) : (l_c += x * f);
                            is_f = 0;
                            continue;
                        }
                        else break;
                    }
                }
                else f=1,x=0,is_f=1;
            }
            else{
                flag=1,x=0,f=1,is_f=1;
            }
        }
        else{
            f=-1,x=0,is_f=1;
        }
        ch=getchar();
    }
    putchar(C);
    const double ans((double)(l_c-r_c)/(r_x-l_x));
    printf("=%.3lf",ans?ans:0);
    return 0;
}

若某位大神看出了端倪,可以给我回话,感激不尽!

2022/7/28 17:24
加载中...