Task: | Ositus |
Sender: | Matenstein |
Submission time: | 2021-10-05 11:34:06 +0300 |
Language: | C++ (C++17) |
Status: | READY |
Result: | 40 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 40 |
#2 | TIME LIMIT EXCEEDED | 0 |
#3 | TIME LIMIT EXCEEDED | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
#2 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
#3 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
#4 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
#5 | TIME LIMIT EXCEEDED | -- | 2, 3 | details |
#6 | TIME LIMIT EXCEEDED | -- | 3 | details |
#7 | RUNTIME ERROR | 0.35 s | 3 | details |
Compiler report
input/code.cpp: In function 'partition calculateMaxPartition(std::__cxx11::string, long long int)': input/code.cpp:16:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (long long a = start; a < i.size() && !end; a++) ~~^~~~~~~~~~ input/code.cpp:18:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (long long b = 0; b < seen.size() && !end; b++)if (i[a] == seen[b])end = true; ~~^~~~~~~~~~~~~ input/code.cpp: In function 'void partitions(std::__cxx11::string, long long int)': input/code.cpp:32:9: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (a == input.size() - 1)maxi++; ~~^~~~~~~~~~~~~~~~~~~
Code
#include <iostream> #include <string> #include <vector> using namespace std; struct partition { long long start, end; }; partition calculateMaxPartition(string i, long long start) { partition o; o.start = start; vector<char>seen; bool end = false; for (long long a = start; a < i.size() && !end; a++) { for (long long b = 0; b < seen.size() && !end; b++)if (i[a] == seen[b])end = true; if (end)o.end = a - 1; else seen.push_back(i[a]); } if (!end)o.end = i.size() - 1; return o; } long long maxi = 0; void partitions(string input, long long start) { partition p = calculateMaxPartition(input, start); for (long long a = p.start; a <= p.end; a++) { if (a == input.size() - 1)maxi++; else partitions(input, a + 1); } } int main() { string input; cin >> input; long long modulo = 10; for (long long i = 0; i < 9; i++) { modulo *= 10; } modulo += 7; partitions(input, 0); cout << maxi % modulo; }
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
a |
correct output |
---|
1 |
user output |
---|
1 |
Test 2
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
abcdefghij |
correct output |
---|
512 |
user output |
---|
512 |
Test 3
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
abcabaacbc |
correct output |
---|
120 |
user output |
---|
120 |
Test 4
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
aaxxxxxxaa |
correct output |
---|
4 |
user output |
---|
4 |
Test 5
Group: 2, 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
mfyzvoxmppoxcvktmcjkryyocfweub... |
correct output |
---|
643221148 |
user output |
---|
(empty) |
Test 6
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
weinscqmmpgbrlboocvtbptgbahmwv... |
correct output |
---|
831644159 |
user output |
---|
(empty) |
Test 7
Group: 3
Verdict: RUNTIME ERROR
input |
---|
sxaoxcyrjoeieyinaqxwukgzdnhhsw... |
correct output |
---|
816016015 |
user output |
---|
(empty) |