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) |