이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <stdio.h>
const int MOD = 1000000007;
int mul(int x, int y){ return (long long)x * y % MOD; }
int power(int x, int y){
  if(y == 0) return 1;
  int r = power(x, y / 2);
  r = mul(r, r);
  if(y % 2 == 1) r = mul(r, x);
  return r;
}
int modinv(int x){
  return power(x, MOD - 2);
}
int main(){
  int N, K; scanf("%d%d", &N, &K);
  int v = 1;
  for(int i = 1; i <= N + 1; i++) v = mul(v, i); // fac(N + 1)
  v = mul(v, N + 1);
  int ans = 0;
  for(int k = 1; k <= N; k++){
    v = mul(v, k);
    v = mul(v, modinv(k + 1));
    v = mul(v, N - k + 1);
    v = mul(v, modinv(N - k + 2));
    if(k >= K + 1) ans = (ans + v) % MOD;
  }
  printf("%d\n", ans);
  return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |