Submission #4639547


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<ll,ll> P;
#define pb push_back
#define mp make_pair
#define fr(i,n) for(int i=0;i<n;i++)
#define Fr(i,n) for(int i=0;i++<n;)
#define ifr(i,n) for(int i=n-1;i>=0;i--)
#define iFr(i,n) for(int i=n;i>0;i--)

const ll MOD=1e9+7;

ll ad(ll x,ll y=0){
  return (x+y)%MOD;
}

ll mlt(ll x,ll y=1){
  return (x*y)%MOD;
}

ll pwr(ll x,ll y){
  ll pw[32]={},w=1;
  pw[0]=x;
  fr(i,31) pw[i+1]=mlt(pw[i],pw[i]);
  fr(i,32){
    w=mlt(w,1+(y%2)*(pw[i]-1));
    y/=2;
  }
  return w;
}

ll inv(ll x){
  return pwr(x,MOD-2);
}

ll fc[200010]={1};
ll fct(ll x){
  if(fc[x]==0) fc[x]=mlt(x,fct(x-1));
  return fc[x];
}

ll ifc[200010]={1};
ll ifct(ll x){
  if(ifc[x]==0) ifc[x]=inv(fct(x));
  return ifc[x];
}

ll comb(ll n,ll r){
  if(n<0 || r<0 || n<r) return 0;
  return mlt(fct(n),mlt(ifct(r),ifct(n-r)));
}

ll pt(ll a,ll b){
  return comb(a+b-2,a-1);
}

int main(){
  ll h,w,a,b,ans=0;
  cin>>h>>w>>a>>b;
  Fr(i,h-a) ans=ad(ans,mlt(pt(i,b),pt(h-i+1,w-b)));
  cout<<ans<<endl;
}

Submission Info

Submission Time
Task D - Iroha and a Grid
User Motsu_xe
Language C++14 (GCC 5.4.1)
Score 400
Code Size 1128 Byte
Status AC
Exec Time 36 ms
Memory 4096 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 4
AC × 26
Set Name Test Cases
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
Case Name Status Exec Time Memory
subtask0_01.txt AC 1 ms 256 KB
subtask0_02.txt AC 1 ms 256 KB
subtask0_03.txt AC 3 ms 2560 KB
subtask0_04.txt AC 34 ms 3072 KB
subtask1_01.txt AC 1 ms 256 KB
subtask1_02.txt AC 1 ms 256 KB
subtask1_03.txt AC 1 ms 256 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_max.txt AC 1 ms 256 KB
subtask2_01.txt AC 3 ms 512 KB
subtask2_02.txt AC 4 ms 512 KB
subtask2_03.txt AC 1 ms 384 KB
subtask2_04.txt AC 4 ms 512 KB
subtask2_05.txt AC 2 ms 384 KB
subtask2_06.txt AC 36 ms 4096 KB
subtask2_07.txt AC 34 ms 3712 KB
subtask2_08.txt AC 35 ms 3072 KB
subtask2_09.txt AC 35 ms 3200 KB
subtask2_10.txt AC 29 ms 3968 KB
subtask2_max.txt AC 5 ms 640 KB