Submission #1686509


Source Code Expand

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>	
#include<map>
#include<set>
#include<utility>
#include<cmath>
#include<cstring>
#include<queue>
#include<stack>
#include<cstdio>
#include<sstream>
#include<iomanip>
#include<assert.h>
#define loop(i,a,b) for(int i=a;i<b;i++) 
#define rep(i,a) loop(i,0,a)
#define pb push_back
#define all(in) in.begin(),in.end()
#define shosu(x) fixed<<setprecision(x)
using namespace std;
//kaewasuretyuui
typedef long long ll;
typedef ll Def;
typedef pair<Def,Def> pii;
typedef vector<Def> vi;
typedef vector<vi> vvi;
typedef vector<pii> vp;
typedef vector<vp> vvp;
typedef vector<string> vs;
typedef vector<double> vd;
typedef vector<vd> vvd;
typedef pair<Def,pii> pip;
typedef vector<pip>vip;
//#define mt make_tuple
//typedef tuple<double,int,double> tp;
//typedef vector<tp> vt;
template<typename A,typename B>bool cmin(A &a,const B &b){return a>b?(a=b,true):false;}
template<typename A,typename B>bool cmax(A &a,const B &b){return a<b?(a=b,true):false;}
const double PI=acos(-1);
const double EPS=1e-7;
Def inf=sizeof(Def)==sizeof(long long)?9e18:1e9;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
//
// extgcd(a=12707,b=12319,x,y) -> x=32,y=-33,return 97=gcd
ll extgcd(ll a,ll b,ll &x,ll &y){//ax+by=gcd(a,b)=d
	ll d=a;
	if(b!=0){
		d=extgcd(b,a%b,y,x);
		y-=(a/b)*x;
	}else{
		x=1;y=0;
	}
	return d;
}
// x= mod1 mod div1
// x= mod2 mod div2
// であるxを返す
ll crt(ll div1,ll mod1,ll div2,ll mod2){
	ll x,y;
	ll d=extgcd(div1,div2,x,y);
	if(d-1)assert(0);
	ll ndiv=div1*div2;
//	ll nmod=(x*(mod2-mod1)*div1+mod1)%ndiv;
	ll nmod=(mod1*div2%ndiv*(ndiv+y)%ndiv+mod2*div1%ndiv*(ndiv+x)%ndiv)%ndiv;
	return nmod;
}

#define MOD 1000000007
#define MAX 1000010
int sosu[MAX]={1,1,0};
vi sos;
bool h=false;
void init(){
	h=true;
	for(int i=2;i*i<=MAX;i++)if(!sosu[i])
	for(int j=i*2;j<MAX;j+=i)sosu[j]=true;
	rep(i,MAX)if(sosu[i]==0)sos.pb(i);
}
//nCr mod m
//n<1e7 r,m:任意
//前計算O(nloglogn) 本計算O(n/logn)
ll nCr_m(ll n,ll r,ll m){
	if(!h)init();
	if(n<0||r<0||r>n)return 0;
	if(r>n/2)r=n-r;
	vi A(n);
	rep(i,r)A[i]=n-i;
	rep(p,sos.size()){
		if(sos[p]>r)break;
		for(ll q=sos[p];q<=r;q*=sos[p]){
			int m=n%q;
			for(int i=m,j=0;j<r/q;i+=q,j++)A[i]/=sos[p];
		}
	}
	ll out=1;
	rep(i,r)(out*=A[i])%=m;
	return out;
}
ll nCr(ll n,ll r,ll m){
	ll out=1;
	while(n>0){
		(out*=nCr_m(n%m,r%m,m))%=m;
		n/=m;r/=m;
	}
	return out;
}
int main(){
	ll n,m;
	cin>>n>>m;
	cout<<nCr(n-1+m-1,m-1,MOD)<<endl;
}







Submission Info

Submission Time
Task C - 経路
User ixmel_rd
Language C++14 (GCC 5.4.1)
Score 101
Code Size 2599 Byte
Status AC
Exec Time 17 ms
Memory 6388 KB

Judge Result

Set Name Sample Dataset1 Dataset2 All
Score / Max Score 0 / 0 50 / 50 50 / 50 1 / 1
Status
AC × 2
AC × 12
AC × 24
AC × 35
Set Name Test Cases
Sample s0.txt, s1.txt
Dataset1 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, s0.txt
Dataset2 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, s0.txt, s1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, s0.txt, s1.txt
Case Name Status Exec Time Memory
000.txt AC 11 ms 5240 KB
001.txt AC 11 ms 5240 KB
002.txt AC 10 ms 5240 KB
003.txt AC 10 ms 5240 KB
004.txt AC 11 ms 5240 KB
005.txt AC 11 ms 5240 KB
006.txt AC 10 ms 5240 KB
007.txt AC 10 ms 5240 KB
008.txt AC 10 ms 5240 KB
009.txt AC 10 ms 5240 KB
010.txt AC 10 ms 5368 KB
011.txt AC 10 ms 5240 KB
012.txt AC 10 ms 5240 KB
013.txt AC 10 ms 5240 KB
014.txt AC 10 ms 5240 KB
015.txt AC 10 ms 5240 KB
016.txt AC 10 ms 5240 KB
017.txt AC 10 ms 5240 KB
018.txt AC 10 ms 5240 KB
019.txt AC 10 ms 5240 KB
020.txt AC 10 ms 5240 KB
021.txt AC 10 ms 5240 KB
022.txt AC 15 ms 6260 KB
023.txt AC 14 ms 6004 KB
024.txt AC 13 ms 5876 KB
025.txt AC 10 ms 5240 KB
026.txt AC 11 ms 5240 KB
027.txt AC 13 ms 5876 KB
028.txt AC 14 ms 6132 KB
029.txt AC 12 ms 5492 KB
030.txt AC 14 ms 6004 KB
031.txt AC 13 ms 5748 KB
032.txt AC 17 ms 6388 KB
s0.txt AC 10 ms 5240 KB
s1.txt AC 10 ms 5240 KB