Submission #851860

# Submission time Handle Problem Language Result Execution time Memory
851860 2023-09-20T17:25:41 Z vjudge1 Magneti (COCI21_magneti) C++17
10 / 110
1 ms 492 KB
//author:
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;

#define ONLINE_JUDGE

const int MOD = 1e9 + 7;

int fak[10000 + 5];

int fp(int a, int b) {
    int res = 1;
    while(b) {
        if(b & 1) {
            res = (1LL * res * a) % MOD;
        }

        a = (1LL * a * a) % MOD;
        b >>= 1;
    }

    return res;
}

int divide(int a) {
    return fp(a, MOD -2);
}

int divide(int a, int b) {
    return (1LL * a * divide(b)) % MOD;
}

int comb(int n, int r) {
    if(n < r) 
        return 0;

    return divide(fak[n], (1LL * fak[r] * fak[n - r]) % MOD);
}

void solve() {
    int n, l;
    cin >> n >> l;

    vector <int> vec(n);
    for(int &i : vec) 
        cin >> i;
        
    int parca = l - ((n -1) * (vec[0] -1));

    cout << (1LL * comb(parca, n) * fak[n]) % MOD;
    
    return;
}

signed main() {
    #ifndef ONLINE_JUDGE
        freopen(".in", "r", stdin);
        freopen(".out", "w", stdout);
    #endif

    fak[0] = 1;
    for(int i = 1; i <= 10000; i++)
        fak[i] = (1LL * fak[i -1] * i) % MOD;

    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);

    int t = 1; //cin >> t;
    while(t--)
        solve();

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 492 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 492 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Incorrect 0 ms 348 KB Output isn't correct
12 Halted 0 ms 0 KB -