开了int128,但是只有60分
查看原帖
开了int128,但是只有60分
482198
Surigae楼主2022/9/4 11:20
#include<bits/stdc++.h>
using namespace std;
inline __int128 read(){
    __int128 x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){
        if(ch=='-')
            f=-1;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9'){
        x=x*10+ch-'0';
        ch=getchar();
    }
    return x*f;
}
inline void print(__int128 x){
    if(x<0){
        putchar('-');
        x=-x;
    }
    if(x>9)
        print(x/10);
    putchar(x%10+'0');
}
__int128 ans=0,sum[1005];
__int128 n;
struct num{
    __int128 l,r;
}a[1005];
bool cmp(num x,num y){
    return x.l*x.r<y.l*y.r;
}
int main(){
    n=read();
    n+=1;
    a[1].l=read();a[1].r=read();
    for(int i=2;i<=n;i++){
        a[i].l=read();
        a[i].r=read();
    }
    sort(a+2,a+n+1,cmp);
    // for(int i=1;i<=n;i++){
    //     print(a[i].l);
    //     putchar(' ');
    //     print(a[i].r);
    //     putchar('\n');
    // }
    sum[1]=a[1].l;
    for(int i=2;i<=n;i++){
        ans=max(ans,sum[i-1]/a[i].r);
        sum[i]=sum[i-1]*a[i].l;
        //print(sum[i]);
        //putchar('\n');
        //print(sum[i]/a[i].r);
    }
    // for(int i=1;i<=n;i++){
    // //     print(sum[i]);
    //     //putchar('\n');
    //     print(sum[i-1]/a[i].r);
    //     putchar('\n');
    // }
    print(ans);
    putchar('\n');
}

开了int128,但是只有60分,6,8,9,10 4个测试点WA,是必须要高精度吗?

2022/9/4 11:20
加载中...