結果
問題 | No.41 貯金箱の溜息(EASY) |
ユーザー | akakimidori |
提出日時 | 2016-12-11 18:09:29 |
言語 | C90 (gcc 11.4.0) |
結果 |
AC
|
実行時間 | 4 ms / 5,000 ms |
コード長 | 685 bytes |
コンパイル時間 | 319 ms |
コンパイル使用メモリ | 22,144 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-05-06 18:35:43 |
合計ジャッジ時間 | 1,012 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 4 ms
5,248 KB |
testcase_01 | AC | 4 ms
5,376 KB |
コンパイルメッセージ
main.c: In function ‘run’: main.c:25:3: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 25 | scanf("%d",&t); | ^~~~~~~~~~~~~~ main.c:29:5: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 29 | scanf("%lld",&x); | ^~~~~~~~~~~~~~~~
ソースコード
#include<stdio.h> #include<stdlib.h> typedef long long int ln; void run(void){ const int mod=1000000000+9; const int len=(int)(10000000000LL/111111)+1; int *part=(int *)malloc(sizeof(int)*(len+1)); int i; for(i=0;i<=len;i++){ part[i]=1; } int k; for(k=2;k<=9;k++){ for(i=0;i<=len-k;i++){ part[i+k]=(part[i+k]+part[i])%mod; } } for(i=1;i<=len;i++){ part[i]=(part[i]+part[i-1])%mod; } int t; scanf("%d",&t); int *m=(int *)malloc(sizeof(int)*t); for(i=0;i<t;i++){ ln x; scanf("%lld",&x); m[i]=(int)(x/111111); } for(i=0;i<t;i++){ printf("%d\n",part[m[i]]); } return; } int main(void){ run(); return 0; }