Task: | Ohjelma |
Sender: | FSMnArmosta |
Submission time: | 2017-01-19 15:16:05 +0200 |
Language: | C++ |
Status: | READY |
Result: | 21 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 21 |
#2 | TIME LIMIT EXCEEDED | 0 |
#3 | TIME LIMIT EXCEEDED | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.04 s | 1 | details |
#2 | ACCEPTED | 0.04 s | 1 | details |
#3 | ACCEPTED | 0.05 s | 1 | details |
#4 | ACCEPTED | 0.03 s | 1 | details |
#5 | ACCEPTED | 0.04 s | 1 | details |
#6 | ACCEPTED | 0.04 s | 1 | details |
#7 | ACCEPTED | 0.04 s | 1 | details |
#8 | ACCEPTED | 0.04 s | 1 | details |
#9 | ACCEPTED | 0.04 s | 1 | details |
#10 | ACCEPTED | 0.04 s | 1 | details |
#11 | ACCEPTED | 0.44 s | 2 | details |
#12 | TIME LIMIT EXCEEDED | -- | 2 | details |
#13 | ACCEPTED | 0.47 s | 2 | details |
#14 | ACCEPTED | 0.46 s | 2 | details |
#15 | ACCEPTED | 0.43 s | 2 | details |
#16 | ACCEPTED | 0.50 s | 2 | details |
#17 | ACCEPTED | 0.38 s | 2 | details |
#18 | ACCEPTED | 0.50 s | 2 | details |
#19 | ACCEPTED | 0.47 s | 2 | details |
#20 | ACCEPTED | 0.37 s | 2 | details |
#21 | TIME LIMIT EXCEEDED | -- | 3 | details |
#22 | TIME LIMIT EXCEEDED | -- | 3 | details |
#23 | TIME LIMIT EXCEEDED | -- | 3 | details |
#24 | TIME LIMIT EXCEEDED | -- | 3 | details |
#25 | TIME LIMIT EXCEEDED | -- | 3 | details |
#26 | TIME LIMIT EXCEEDED | -- | 3 | details |
#27 | TIME LIMIT EXCEEDED | -- | 3 | details |
#28 | TIME LIMIT EXCEEDED | -- | 3 | details |
#29 | TIME LIMIT EXCEEDED | -- | 3 | details |
#30 | TIME LIMIT EXCEEDED | -- | 3 | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:137:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i = 0; i < p.size(); i++){ ^
Code
#include <iostream>#include <vector>#include <queue>#include <map>/*Siihen en alennu, että ilman Pythonin foria koodaisin [:-1]*/#define MP std::make_pair#define for_x_in_range for(int x = 0; x <#define iteratex ;x++)#define for_y_in_range for(int y = 0; y <#define iteratey ;y++)#define for_z_in_range for(int z = 0; z <#define iteratez ;z++)#define ADD 0#define MUL 1/*tgt = int(input())memory = {}def addTo(base, command):if base == ["END"]:return command + baseelse:return base[:-1]+command+base[-1:]def programsFor(num):if not num in memory.keys():if num == 1:return ["END"]else:pf2 = []pf3 = []if num % 2 == 0:pf2 = programsFor(num // 2)if num - 3 > 0:pf3 = programsFor(num - 3)if pf2 == [] and pf3 == []:memory[num] = []elif pf2 != [] and pf3 == []:memory[num] = addTo(pf2, ["MUL"])elif pf2 == [] and pf3 != []:memory[num] = addTo(pf3, ["ADD"])else:if len(pf2) > len(pf3):memory[num] = addTo(pf3, ["ADD"])else:memory[num] = addTo(pf2, ["MUL"])return memory[num]program = programsFor(tgt)if program == []:print(0)else:print(len(program))print("\n".join(program))*/std::map<int, std::vector<int> > memory;std::vector<int> nope;std::vector<int> programsFor(int num){if(memory.find(num) == memory.end()){if(num == 1){std::vector<int> v;return v;}else{std::vector<int> pf2;std::vector<int> pf3;bool pf2_possible = false;bool pf3_possible = false;if(num % 2 == 0){pf2 = programsFor(num / 2);if(pf2.size() == 0 or pf2.front() != -1){pf2_possible = true;pf2.push_back(MUL);}}if(num - 3 > 0){pf3 = programsFor(num - 3);if(pf3.size() == 0 or pf3.front() != -1){pf3_possible = true;pf3.push_back(ADD);}}if(pf2_possible == false and pf3_possible == false){memory[num] = nope;}else if(pf2_possible == true and pf3_possible == false){memory[num] = pf2;}else if(pf2_possible == false and pf3_possible == true){memory[num] = pf3;}else{if(pf2.size() > pf3.size()){memory[num] = pf3;}else{memory[num] = pf2;}}}}return memory[num];}int main(){nope.push_back(-1);int tgt;std::cin >> tgt;std::vector<int> p = programsFor(tgt);if(p.size() == 0 or (p.size() > 0 and p.front() != -1)){std::cout << p.size()+1 << std::endl;for(int i = 0; i < p.size(); i++){if(p[i] == ADD){std::cout << "ADD" << std::endl;}else{std::cout << "MUL" << std::endl;}}std::cout << "END" << std::endl;}else{std::cout << 0 << std::endl;}}
Test details
Test 1
Group: 1
Verdict: ACCEPTED
input |
---|
58 |
correct output |
---|
8 MUL ADD MUL ADD ... |
user output |
---|
8 MUL ADD MUL ADD ... |
Test 2
Group: 1
Verdict: ACCEPTED
input |
---|
72 |
correct output |
---|
0 |
user output |
---|
0 |
Test 3
Group: 1
Verdict: ACCEPTED
input |
---|
83 |
correct output |
---|
8 MUL ADD MUL MUL ... |
user output |
---|
8 MUL ADD MUL MUL ... |
Test 4
Group: 1
Verdict: ACCEPTED
input |
---|
53 |
correct output |
---|
8 ADD MUL ADD MUL ... |
user output |
---|
8 ADD MUL ADD MUL ... |
Test 5
Group: 1
Verdict: ACCEPTED
input |
---|
100 |
correct output |
---|
8 ADD MUL ADD MUL ... |
user output |
---|
8 ADD MUL ADD MUL ... |
Test 6
Group: 1
Verdict: ACCEPTED
input |
---|
64 |
correct output |
---|
6 ADD MUL MUL MUL ... |
user output |
---|
6 ADD MUL MUL MUL ... |
Test 7
Group: 1
Verdict: ACCEPTED
input |
---|
84 |
correct output |
---|
0 |
user output |
---|
0 |
Test 8
Group: 1
Verdict: ACCEPTED
input |
---|
60 |
correct output |
---|
0 |
user output |
---|
0 |
Test 9
Group: 1
Verdict: ACCEPTED
input |
---|
51 |
correct output |
---|
0 |
user output |
---|
0 |
Test 10
Group: 1
Verdict: ACCEPTED
input |
---|
77 |
correct output |
---|
9 ADD ADD MUL ADD ... |
user output |
---|
9 ADD ADD MUL ADD ... |
Test 11
Group: 2
Verdict: ACCEPTED
input |
---|
941694 |
correct output |
---|
0 |
user output |
---|
0 |
Test 12
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
905674 |
correct output |
---|
30 MUL ADD MUL ADD ... |
user output |
---|
(empty) |
Test 13
Group: 2
Verdict: ACCEPTED
input |
---|
908426 |
correct output |
---|
29 ADD MUL ADD MUL ... |
user output |
---|
29 ADD MUL ADD MUL ... |
Test 14
Group: 2
Verdict: ACCEPTED
input |
---|
960500 |
correct output |
---|
31 ADD ADD MUL MUL ... |
user output |
---|
31 ADD ADD MUL MUL ... |
Test 15
Group: 2
Verdict: ACCEPTED
input |
---|
902101 |
correct output |
---|
27 MUL ADD MUL ADD ... |
user output |
---|
27 MUL ADD MUL ADD ... |
Test 16
Group: 2
Verdict: ACCEPTED
input |
---|
994208 |
correct output |
---|
27 ADD ADD MUL MUL ... |
user output |
---|
27 ADD ADD MUL MUL ... |
Test 17
Group: 2
Verdict: ACCEPTED
input |
---|
923538 |
correct output |
---|
0 |
user output |
---|
0 |
Test 18
Group: 2
Verdict: ACCEPTED
input |
---|
950287 |
correct output |
---|
24 MUL ADD MUL ADD ... |
user output |
---|
24 MUL ADD MUL ADD ... |
Test 19
Group: 2
Verdict: ACCEPTED
input |
---|
950516 |
correct output |
---|
29 ADD ADD MUL MUL ... |
user output |
---|
29 ADD ADD MUL MUL ... |
Test 20
Group: 2
Verdict: ACCEPTED
input |
---|
921882 |
correct output |
---|
0 |
user output |
---|
0 |
Test 21
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
933942296856681219 |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 22
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
955775764385016720 |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 23
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
981578916796073406 |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 24
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
927875200723222396 |
correct output |
---|
94 MUL ADD MUL MUL ... |
user output |
---|
(empty) |
Test 25
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
990125206148420558 |
correct output |
---|
84 ADD MUL ADD MUL ... |
user output |
---|
(empty) |
Test 26
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
964804802247123102 |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 27
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
996610423667404231 |
correct output |
---|
96 MUL ADD MUL ADD ... |
user output |
---|
(empty) |
Test 28
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
948665008088793691 |
correct output |
---|
86 MUL ADD MUL ADD ... |
user output |
---|
(empty) |
Test 29
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
969397787818953279 |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 30
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
918471787211371085 |
correct output |
---|
90 ADD MUL ADD MUL ... |
user output |
---|
(empty) |