1. 程式人生 > >私人奶茶店

私人奶茶店

小C有一家奶茶店,其中有n種奶茶,每種奶茶都有a【i】個,小C每天都會等概率地從剩餘的奶茶中選一杯奶茶喝掉,問小C第K天喝到第m種奶茶的概率是多少。

輸入格式:

第一行n,代表奶茶的種類數,第二行n個數,表示a【i】

第三行k,m,表示第k天喝到第m種奶茶的概率

(n<=1e5, 0 < a[i] <= 1e6)

(1<=k<=sum(a[i]), 1<=m<=n)

輸出格式:

用最簡分數表示。

輸入:

2

1 1

1 1

輸出:

1/2

#include <cstdio>
#include <iostream>
using namespace std;
typedef long long ll;
const int maxn = 1e5+9;
ll a[maxn];
ll gcd(ll a, ll b){
    if(b==0)return a;
    return gcd(b, a%b);
}
int main(){ 
        // freopen("data5.in", "r", stdin);
        int n;scanf("%d", &n);
        ll sum = 0;
        for(int i=1; i<=n; i++)scanf("%lld", &a[i]),sum+=a[i];
        cout<<"sum"<<sum<<endl;
        int k,m;
        scanf("%d%d", &k, &m);
        ll g = gcd(sum,a[m]);
        printf("%lld/%lld\n", 1ll*a[m]/g, 1ll*sum/g);
        return 0;
}