結果
問題 | No.129 お年玉(2) |
ユーザー |
![]() |
提出日時 | 2015-07-14 22:32:57 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 281 ms / 5,000 ms |
コード長 | 814 bytes |
コンパイル時間 | 773 ms |
コンパイル使用メモリ | 21,632 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-28 00:05:08 |
合計ジャッジ時間 | 5,532 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 46 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:59:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 59 | scanf("%lld", &n); | ^~~~~~~~~~~~~~~~~ main.c:60:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 60 | scanf("%lld", &m); | ^~~~~~~~~~~~~~~~~
ソースコード
#include <stdio.h>long long int sum,n,m,r;int gcd( int a, int b){if(b == 0){return a;}if(a > b){return gcd(b,a%b);}else{return gcd(a,b%a);}}int C(int n, int r){int i, j, tr;int tmp[10010]={0};sum = 1;if( n < r ){return 0;}for(i=0;i<10010;i++){tmp[i] = 1;}for(i=n;i>1;i--){if( r == i ){break;}if( (n-r) == i ){break;}tmp[i] = i;}tr = n-i;for(i=2;i<=tr;i++){int ti=i;for(j=2;j<=n;j++){int g = gcd(tmp[j], ti);if( g != 1){tmp[j] /= g;ti /= g;}if(ti == 1){break;}}}for(i=1;i<=n;i++){if(tmp[i] != 0){sum = (sum*tmp[i])% 1000000000;}}return (int)(sum);}int main(void){scanf("%lld", &n);scanf("%lld", &m);r = (n / 1000) % m;printf("%d\n", C((int)m,(int)r));return 0;}