Submission #1624090


Source Code Expand

#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <math.h>
#include <cmath>
#include <limits.h>
#include <map>
#include <set>
#include <queue>
#include <algorithm>
#include <functional>
#include <stdio.h>
using namespace std;

long long func( int a, int b, long long p ) {
    if ( b == 0 ) {
        return 1;
    }
    else if ( b%2 == 0 ) {
        long long temp = func( a, b/2, p );
        return (temp * temp)%p;
    }
    else {
        return ( func( a, b-1, p ) * a ) % p;
    }
    
}

long long MOD = 1000000007;

vector< vector<long long> > dp;

long long func2( int a, int d, long long p ) {
    
    if ( dp[a][d] ) { return dp[a][d]; }
    if ( !d ) { return 1; }
    
    long long s = 0;
    for ( int i = 0; i <= a; i++ ) {
        
        s += func2( a-i, d-1,p );
        s %= p;
        
    }
    dp[a][d] = s;
    
    return s;    
}

int main() {
    
    
    int N,K;
    cin >> N >> K;
    
    long long ans = 1;
    
    
    dp = vector< vector<long long> >(N, vector<long long>(N, 0) );
    
    
    if ( N > K ) {
        
        cout << func2( K, N-1, MOD ) << endl;
        
        return 0;
    }
    
    
    for ( int i = 0; i < K%N; i++ ) {
        ans *= (N-i);
        ans %= MOD;
    }
    
    for ( int i = 1; i <= K%N; i++ ) {
        ans *= func( i, MOD-2, MOD );
        ans %= MOD;
    }
    
    
    cout << ans << endl;
    
    return 0;
}
    

Submission Info

Submission Time
Task B - 高橋幼稚園
User tetsuzuki1115
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1521 Byte
Status AC
Exec Time 4 ms
Memory 384 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 1 ms 256 KB
subtask0_sample_02.txt AC 1 ms 384 KB
subtask0_sample_03.txt AC 1 ms 256 KB
subtask1_01.txt AC 1 ms 256 KB
subtask1_02.txt AC 1 ms 256 KB
subtask1_03.txt AC 1 ms 384 KB
subtask1_04.txt AC 1 ms 256 KB
subtask1_05.txt AC 1 ms 256 KB
subtask1_06.txt AC 1 ms 256 KB
subtask1_07.txt AC 1 ms 256 KB
subtask1_08.txt AC 1 ms 256 KB
subtask1_09.txt AC 1 ms 256 KB
subtask1_10.txt AC 1 ms 256 KB
subtask1_11.txt AC 1 ms 256 KB
subtask1_12.txt AC 1 ms 256 KB
subtask1_13.txt AC 1 ms 256 KB
subtask1_14.txt AC 1 ms 256 KB
subtask1_15.txt AC 1 ms 256 KB
subtask1_16.txt AC 1 ms 384 KB
subtask1_17.txt AC 1 ms 256 KB
subtask1_18.txt AC 1 ms 256 KB
subtask1_19.txt AC 1 ms 256 KB
subtask2_01.txt AC 1 ms 256 KB
subtask2_02.txt AC 1 ms 256 KB
subtask2_03.txt AC 4 ms 256 KB
subtask2_04.txt AC 3 ms 256 KB
subtask2_05.txt AC 2 ms 256 KB
subtask2_06.txt AC 1 ms 256 KB
subtask2_07.txt AC 1 ms 256 KB
subtask2_08.txt AC 2 ms 384 KB
subtask2_09.txt AC 1 ms 256 KB
subtask2_10.txt AC 3 ms 384 KB
subtask2_11.txt AC 1 ms 384 KB