Submission #3596322


Source Code Expand

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
typedef long long ll;
using namespace std;

int main() {
    string S;  cin >> S;

    int n = S.size() - 1;

    // '+'の出現パターンを列挙
    ll sum = 0;  // 合計値の初期化
    for (int bit = 0; bit < (1<<n); ++bit) {

        // パターンに対応する計算
        ll stack = 0;  // スタックの初期化
        for (int i = 0; i < n+1; ++i) {

            // i番目の数をスタックに加算
            stack += S[i] - '0';
            if (bit & (1<<i) || i == n) {
                sum += stack;  // スタックを加算
                stack = 0;  // スタックを初期化
            } else {
                stack = stack * 10;  // スタックを10倍
            }
            //cout << stack << endl;
        }
    }

    cout << sum << endl;

}

Submission Info

Submission Time
Task C - Many Formulas
User benyame
Language C++14 (GCC 5.4.1)
Score 300
Code Size 904 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status AC
AC × 12
Set Name Test Cases
Sample
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, sample_01.txt, sample_02.txt
Case Name Status Exec Time Memory
01.txt AC 1 ms 256 KB
02.txt AC 1 ms 256 KB
03.txt AC 1 ms 256 KB
04.txt AC 1 ms 256 KB
05.txt AC 1 ms 256 KB
06.txt AC 1 ms 256 KB
07.txt AC 1 ms 256 KB
08.txt AC 1 ms 256 KB
09.txt AC 1 ms 256 KB
10.txt AC 1 ms 256 KB
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB