Submission #4642368


Source Code Expand

#include <iostream>
#include <vector>
#include <array>
#include <list>
#include <set>
#include <map>
#include <utility>
#include <string>
#include <sstream>
#include <algorithm>
#include <random>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <cmath>
#include <cassert>
#include <climits>

using namespace std;

uint64_t final_calc(const string& str, vector<int> plus)
{
	uint64_t sum = 0;

	uint64_t val = 0;
	auto     it = plus.begin();

	for (int i = 0; i < str.size(); i++) {
		if (it != plus.end() && *it == i) {
			sum += val;
			val = 0;
			it++;
		}
		val = val * 10 + (str[i] - '0');
	}

	sum += val;

	return sum;
}

uint64_t calc(const string& str, int p, vector<int> plus)
{
	if (p == str.size()) {
		return final_calc(str, plus);
	}

	vector<int> add = plus;
	add.push_back(p);

	uint64_t ret = 0;
	ret += calc(str, p + 1, plus);
	ret += calc(str, p + 1, add);

	return ret;
}

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

	uint64_t ret = calc(s, 1, {});
	cout << ret << endl;

	return 0;
}

Submission Info

Submission Time
Task C - Many Formulas
User cplusplusonly
Language C++14 (GCC 5.4.1)
Score 300
Code Size 1094 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