QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#589746#9381. 502 Bad GatewayLanzyWA 0ms3668kbC++141.2kb2024-09-25 19:59:142024-09-25 19:59:15

Judging History

你现在查看的是最新测评结果

  • [2024-09-25 19:59:15]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3668kb
  • [2024-09-25 19:59:14]
  • 提交

answer

#include <bits/stdc++.h>
#define int long long
#define IOS ios::sync_with_stdio(0),cin.tie(0)

using namespace std;

const int N=2e5+10;

int n;

double check(int x){
    if(x==0) return 1e18;
    if(x>n){
        return 1e18;
    }

    if(x==n){
        return (1+x)/2.0;
    }

    return (1+x)/2.0+1.0*n/x;
}

void add(int &fz,int &fm,int z,int m){

    int gcd=__gcd(fm,m);
    fz*=m/gcd;
    z*=fm/gcd;

    fz+=z;
    fm*=m/gcd;

    gcd=__gcd(fz,fm);
    fz/=gcd;
    fm/=gcd;
}

void sol(int cases){
    cin>>n;

    if(n==1){
        cout<<"1 1\n";
        return;
    }

    int L=1,R=n;
    while(L<=R){
        int mid=(L+R)>>1;
        if(check(mid)<=check(mid+1)){
            R=mid-1;
        }else{
            L=mid+1;
        }
    }

    int fz=1+L,fm=2;

    int gcd=__gcd(fz,fm);
    fz/=gcd;
    fm/=gcd;

    
    // cout<<fz<<' '<<fm<<'\n';


    // cout<<fz<<' '<<fm<<'\n';

    if(R!=n){
        add(fz,fm,n,L);
    }
    cout<<fz<<' '<<fm<<'\n';
}

signed main(){

    IOS;
    int t=1;
    cin>>t;

    for(int i=1;i<=t;++i){
        sol(i);
    }

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3668kb

input:

3
1
2
3

output:

1 1
5 2
3 1

result:

wrong answer 2nd lines differ - expected: '3 2', found: '5 2'