10164번 - 격자상의 경로
#include<stdio.h>#include<string.h>#include <stdio.h>
int main(){ long long a,b,c,i,sum=1,ans=1,k=1,g=0,l=0; scanf("%lld %lld %lld",&a,&b,&c); for(i=1; i<c%a; i++){ sum*=i; } for(i=1; i<c%b; i++){ ans*=i; } for(i=1; i<c%a+c%b-2; i++){ k*=i; } g=k/(sum+ans); sum=ans=k=1; for(i=1; i<b-1-c%b; i++){ sum*=i; } for(i=1; i<a-1-c%a; i++){ ans*=i; } for(i=1; i<a+b-2-c%b-c%a; i++){ k*=i; } l=k/(sum+ans); printf("%lld",l*g);
}
댓글을 작성하려면 로그인해야 합니다.
rose0122 6년 전
#include<stdio.h>
#include<string.h>
#include <stdio.h>
int main()
{
long long a,b,c,i,sum=1,ans=1,k=1,g=0,l=0;
scanf("%lld %lld %lld",&a,&b,&c);
for(i=1; i<c%a; i++){
sum*=i;
}
for(i=1; i<c%b; i++){
ans*=i;
}
for(i=1; i<c%a+c%b-2; i++){
k*=i;
}
g=k/(sum+ans);
sum=ans=k=1;
for(i=1; i<b-1-c%b; i++){
sum*=i;
}
for(i=1; i<a-1-c%a; i++){
ans*=i;
}
for(i=1; i<a+b-2-c%b-c%a; i++){
k*=i;
}
l=k/(sum+ans);
printf("%lld",l*g);
}