提出 #631749


ソースコード 拡げる

#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e9;
const int MAXP = 9;
typedef long long ll;
#define rep( i, a ) for(int i = 0; i < (a); ++i)

int n;
ll way[MAXP][MAXP][2];

int digit_count(int x){
    int res = 0;
    while( x > 0 ) x /= 10, ++res;
    return res;
}

int digit(int n, int m, int k){
    int g = m - k; // from the back
    rep( i, g ) n /= 10;
    return n % 10;
}

ll dp(int n, int m){
    memset( way, 0, sizeof(way) );
    way[0][0][0] = 1;
    rep( i, m ) rep( j, i + 1 ) rep( k, 2 ){
        int lim = k ? 9 : digit( n, m, i + 1 );
        rep( d, lim + 1 )
            way[i + 1][j + ( d == 1 )][k || d < lim] += way[i][j][k];
    }
    ll res = 0;
    rep( j, m + 1 ) rep( k, 2 )
        res += j * way[m][j][k];
    return res;
}

void solve(){
    int m = digit_count( n );
    printf("%lld\n", dp( n, m ));
}

int main(){
    scanf("%d", &n);
    solve();
    return 0;
}

提出情報

提出日時
問題 D - 1
ユーザ Ow1
言語 C++11 (GCC 4.9.2)
得点 100
コード長 963 Byte
結果 AC
実行時間 27 ms
メモリ 928 KB

コンパイルエラー

./Main.cpp: In function ‘int main()’:
./Main.cpp:43:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &n);
                    ^

ジャッジ結果

セット名 Sample Subtask1 Subtask2
得点 / 配点 0 / 0 20 / 20 80 / 80
結果
AC × 3
AC × 22
AC × 43
セット名 テストケース
Sample subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt
Subtask1 subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt
Subtask2 subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt
ケース名 結果 実行時間 メモリ
subtask0_sample_01.txt AC 24 ms 776 KB
subtask0_sample_02.txt AC 23 ms 796 KB
subtask0_sample_03.txt AC 23 ms 720 KB
subtask1_01.txt AC 25 ms 920 KB
subtask1_02.txt AC 27 ms 796 KB
subtask1_03.txt AC 24 ms 672 KB
subtask1_04.txt AC 23 ms 800 KB
subtask1_05.txt AC 25 ms 924 KB
subtask1_06.txt AC 25 ms 800 KB
subtask1_07.txt AC 23 ms 800 KB
subtask1_08.txt AC 23 ms 928 KB
subtask1_09.txt AC 23 ms 924 KB
subtask1_10.txt AC 23 ms 800 KB
subtask1_11.txt AC 24 ms 800 KB
subtask1_12.txt AC 23 ms 800 KB
subtask1_13.txt AC 23 ms 924 KB
subtask1_14.txt AC 25 ms 676 KB
subtask1_15.txt AC 25 ms 716 KB
subtask1_16.txt AC 23 ms 804 KB
subtask1_17.txt AC 23 ms 924 KB
subtask1_18.txt AC 23 ms 924 KB
subtask1_19.txt AC 25 ms 928 KB
subtask1_20.txt AC 25 ms 796 KB
subtask2_21.txt AC 23 ms 676 KB
subtask2_22.txt AC 23 ms 804 KB
subtask2_23.txt AC 23 ms 800 KB
subtask2_24.txt AC 23 ms 804 KB
subtask2_25.txt AC 23 ms 676 KB
subtask2_26.txt AC 25 ms 920 KB
subtask2_27.txt AC 24 ms 792 KB
subtask2_28.txt AC 23 ms 796 KB
subtask2_29.txt AC 25 ms 924 KB
subtask2_30.txt AC 24 ms 800 KB
subtask2_31.txt AC 25 ms 916 KB
subtask2_32.txt AC 26 ms 796 KB
subtask2_33.txt AC 25 ms 804 KB
subtask2_34.txt AC 25 ms 920 KB
subtask2_35.txt AC 24 ms 916 KB
subtask2_36.txt AC 25 ms 800 KB
subtask2_37.txt AC 26 ms 920 KB
subtask2_38.txt AC 25 ms 800 KB
subtask2_39.txt AC 26 ms 792 KB
subtask2_40.txt AC 25 ms 804 KB