結果
| 問題 | No.41 貯金箱の溜息(EASY) | 
| コンテスト | |
| ユーザー |  ayame_py | 
| 提出日時 | 2016-01-20 15:30:47 | 
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 25 ms / 5,000 ms | 
| コード長 | 698 bytes | 
| コンパイル時間 | 1,481 ms | 
| コンパイル使用メモリ | 159,840 KB | 
| 実行使用メモリ | 6,944 KB | 
| 最終ジャッジ日時 | 2024-09-21 14:47:37 | 
| 合計ジャッジ時間 | 2,016 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 2 | 
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:20:27: warning: iteration 99999 invokes undefined behavior [-Waggressive-loop-optimizations]
   20 |             just_dp[i + j]+=just_dp[j];
      |             ~~~~~~~~~~~~~~^~~~~~~~~~~~
main.cpp:4:35: note: within this loop
    4 | #define REP(i, n) for(ll i = 0; i < (ll)(n); i++)
      |                                   ^
main.cpp:19:9: note: in expansion of macro ‘REP’
   19 |         REP(j,MAX_Md){
      |         ^~~
            
            ソースコード
#include <bits/stdc++.h>
using namespace std;
#define REP(i, n) for(ll i = 0; i < (ll)(n); i++)
#define FOR(i,n,m) for (ll i=n; i < (ll)(m); i++)
#define INF 1000000009
#define pb push_back
#define MAX_Md 100000
typedef long long ll;
int T;
ll just_dp[MAX_Md]; //丁度n枚を表す
ll dp[MAX_Md+1]={0};
int main(){
    just_dp[0]=1;
    FOR(i,1,10){
        REP(j,MAX_Md){
            just_dp[i + j]+=just_dp[j];
            just_dp[i + j]%=INF;
        }
    }
    
    dp[0]=0;
    REP(i,MAX_Md){
        dp[i+1]=dp[i]+just_dp[i];
        dp[i+1]%=INF;
    }
    
    cin >> T;
    REP(i,T){
        ll M;
        cin >> M;
        cout << dp[M/111111+1] << endl;
    }
    
    return 0;
}
            
            
            
        