提出 #816411


ソースコード 拡げる

Copy
#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define sz size()
#define all(a)  a.begin(), a.end()
#define allr(a) a.rbegin(), a.rend()
#define mod 1000000007
#define _for(it, a) for(__typeof(a.begin()) it = a.begin(); it != a.end(); ++it)

using namespace std;

int N, M, A, B;

long long factorial[300005];

long long Power(long long base, long long expo){
    long long res = 1;
    while(expo > 0){
        if(expo % 2 == 1){
            res = (res * base) % mod;
        }
        expo >>= 1;
        base = (base * base) % mod;
    }
    return res % mod;
}

void init(){
   factorial[0] = 1ll;
   for(int n = 1; n <= 300000; ++n){
      factorial[n] = (factorial[n - 1] * n) % mod;
   }
}

long long get(int x, int y){
   x -= 1;
   y -= 1;
   long long p = factorial[x + y];
   long long q = Power(factorial[x], mod - 2);
   long long r = Power(factorial[y], mod - 2);
   p = p * q;
   p %= mod;
   p = p * r;
   p %= mod;
   return p;
}

int main(){
   cin >> N >> M >> A >> B;   
   long long res = 0ll;
   init();
   for(int n = 1; n <= N - A; ++n){
      res += (get(n, B) * get(N - n + 1, M - B)) % mod;
      res %= mod;
   }
   cout << res << endl;
   return 0;
}

提出情報

提出日時
問題 D - いろはちゃんとマス目
ユーザ achaitanyasai
言語 C++14 (GCC 5.4.1)
得点 400
コード長 1293 Byte
結果 AC
実行時間 123 ms
メモリ 2560 KB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 4
AC × 26
セット名 テストケース
Sample subtask0_01.txt, subtask0_02.txt, subtask0_03.txt, subtask0_04.txt
All subtask0_01.txt, subtask0_02.txt, subtask0_03.txt, subtask0_04.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_max.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_max.txt
ケース名 結果 実行時間 メモリ
subtask0_01.txt AC 10 ms 2560 KB
subtask0_02.txt AC 10 ms 2560 KB
subtask0_03.txt AC 10 ms 2560 KB
subtask0_04.txt AC 80 ms 2560 KB
subtask1_01.txt AC 10 ms 2560 KB
subtask1_02.txt AC 11 ms 2560 KB
subtask1_03.txt AC 10 ms 2560 KB
subtask1_04.txt AC 11 ms 2560 KB
subtask1_05.txt AC 11 ms 2560 KB
subtask1_06.txt AC 10 ms 2560 KB
subtask1_07.txt AC 11 ms 2560 KB
subtask1_08.txt AC 10 ms 2560 KB
subtask1_09.txt AC 11 ms 2560 KB
subtask1_10.txt AC 11 ms 2560 KB
subtask1_max.txt AC 11 ms 2560 KB
subtask2_01.txt AC 15 ms 2560 KB
subtask2_02.txt AC 17 ms 2560 KB
subtask2_03.txt AC 10 ms 2560 KB
subtask2_04.txt AC 16 ms 2560 KB
subtask2_05.txt AC 11 ms 2560 KB
subtask2_06.txt AC 123 ms 2560 KB
subtask2_07.txt AC 74 ms 2560 KB
subtask2_08.txt AC 107 ms 2560 KB
subtask2_09.txt AC 119 ms 2560 KB
subtask2_10.txt AC 59 ms 2560 KB
subtask2_max.txt AC 23 ms 2560 KB