Submission #7425849


Source Code Expand

#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <numeric>
#include <unordered_map>
#include <stack>

using namespace std;

long long MOD = 1e9 + 7;

int main()
{
    cin.tie(0);
    ios::sync_with_stdio(false);

    std::string s;
    cin >> s;

    long long sum = 0;
    for (size_t bit = 0; bit < (1 << (s.size() - 1)); bit++)
    {
        long long thisNum = s[0] - '0';
        long long thisSum = 0;
        for (size_t i = 0; i < s.size() - 1; i++)
        {
            // bitが立っている数字から新しい区切りとする
            if (bit & (1 << i)) {
                thisSum += thisNum;
                //std::cout << thisNum << " ";
                thisNum = s[i + 1] - '0';
            }
            else {
                // bitが立っていない場合、位をあげて次を足す
                thisNum = thisNum * 10 + (s[i + 1] - '0');
            }
        }
        //std::cout << thisNum << std::endl;
        thisSum += thisNum;
        sum += thisSum;
    }
    std::cout << sum << std::endl;
    return 0;
}

Submission Info

Submission Time
Task C - Many Formulas
User mmatthew_43
Language C++14 (GCC 5.4.1)
Score 300
Code Size 1153 Byte
Status AC
Exec Time 2 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 2 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