Submission #405803


Source Code Expand

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <vector>
#include <algorithm>
#include <set>
#include <queue>
#include <map>
#include <climits>
using namespace std;

#define REP(i,n) for(int i=0; i<(int)(n); i++)
#define RREP(i,n) for(int i=(int)n-1; i>=0; i--)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define RFOR(i,c) for(__typeof((c).rbegin())i=(c).rbegin();i!=(c).rend();++i)
#define ALL(c) (c).begin(), (c).end()

typedef long long int ll;
typedef pair<int, int> pii;
typedef pair<int, pair<int, int> > pipii;
typedef vector<int> vi;

const int INF = 1e9;
const int MOD = 1e9+7;

class modComb{
    private:
        const ll MAX_N, M;
        vector<ll> fact, invfact;

        ll extgcd(ll a, ll b, ll &x, ll &y){
            ll g = a; x = 1; y = 0;
            if(b) g = extgcd(b, a % b, y, x), y -= (a / b) * x;
            return g;
        }

        ll invMod(ll a){
            ll x, y;
            if(extgcd(a, M, x, y) == 1) return (x + M) % M;
            else return 0;
        }
    public:
        modComb(const ll n, const ll mod) : MAX_N(n), M(mod){
            fact.resize(MAX_N, 1);
            for(int i = 2; i < MAX_N; i++)
                fact[i] = (fact[i-1] * i) % M;
            invfact.resize(MAX_N, 1);
            invfact[MAX_N-1] = invMod(fact[MAX_N-1]);
            for(int i = MAX_N-2; i >= 1; i--)
                invfact[i] = (invfact[i+1] * (i+1)) % M;
        }

        ll operator()(const ll n, const ll r){
            if(n < 0 || r < 0 || n < r) return 0;
            return (((fact[n] * invfact[n-r]) % M) * invfact[r]) % M;
        }
};


int main(void){
    ll N, K;
    cin >> N >> K;	
    ll a = K / N;
    ll b = K - a * N;
    if(a == 0){
        modComb nCr(N + K + 2, MOD);
        cout << nCr(N + K - 1, N - 1) << endl;
        return 0;   
    }
    modComb nCr(N + 1, MOD);
    cout << nCr(N, b) << endl;
    return 0;
}

Submission Info

Submission Time
Task B - 高橋幼稚園
User no15_renne
Language C++ (GCC 4.9.2)
Score 100
Code Size 2038 Byte
Status AC
Exec Time 27 ms
Memory 928 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 80 / 80 20 / 20
Status
AC × 3
AC × 21
AC × 33
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt
Subtask1 subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt
Subtask2 subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 25 ms 804 KB
subtask0_sample_02.txt AC 23 ms 924 KB
subtask0_sample_03.txt AC 23 ms 788 KB
subtask1_01.txt AC 24 ms 800 KB
subtask1_02.txt AC 23 ms 804 KB
subtask1_03.txt AC 24 ms 924 KB
subtask1_04.txt AC 23 ms 804 KB
subtask1_05.txt AC 24 ms 800 KB
subtask1_06.txt AC 24 ms 756 KB
subtask1_07.txt AC 24 ms 804 KB
subtask1_08.txt AC 23 ms 804 KB
subtask1_09.txt AC 22 ms 804 KB
subtask1_10.txt AC 24 ms 796 KB
subtask1_11.txt AC 23 ms 800 KB
subtask1_12.txt AC 26 ms 864 KB
subtask1_13.txt AC 22 ms 804 KB
subtask1_14.txt AC 24 ms 800 KB
subtask1_15.txt AC 24 ms 800 KB
subtask1_16.txt AC 22 ms 928 KB
subtask1_17.txt AC 25 ms 800 KB
subtask1_18.txt AC 24 ms 804 KB
subtask1_19.txt AC 24 ms 736 KB
subtask2_01.txt AC 22 ms 796 KB
subtask2_02.txt AC 24 ms 924 KB
subtask2_03.txt AC 22 ms 744 KB
subtask2_04.txt AC 23 ms 928 KB
subtask2_05.txt AC 23 ms 920 KB
subtask2_06.txt AC 22 ms 924 KB
subtask2_07.txt AC 27 ms 920 KB
subtask2_08.txt AC 27 ms 924 KB
subtask2_09.txt AC 22 ms 928 KB
subtask2_10.txt AC 23 ms 800 KB
subtask2_11.txt AC 25 ms 844 KB