| Task: | Card game |
| Sender: | Isak |
| Submission time: | 2025-09-17 14:48:55 +0300 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | WRONG ANSWER | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.00 s | details |
| #7 | ACCEPTED | 0.01 s | details |
| #8 | ACCEPTED | 0.11 s | details |
| #9 | ACCEPTED | 0.11 s | details |
| #10 | ACCEPTED | 0.11 s | details |
| #11 | WRONG ANSWER | 0.00 s | details |
| #12 | WRONG ANSWER | 0.00 s | details |
| #13 | WRONG ANSWER | 0.00 s | details |
| #14 | ACCEPTED | 0.12 s | details |
| #15 | ACCEPTED | 0.11 s | details |
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:29:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
29 | scanf("%ld", values + i);
| ~~~~~^~~~~~~~~~~~~~~~~~~Code
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
uint64_t max2(uint64_t a, uint64_t b){
return b > a ? b : a;
}
uint64_t max3(uint64_t a, uint64_t b, uint64_t c){
if (a > b)
return c > a ? c : a;
else
return c > b ? c : b;
}
int main() {
uint64_t nb = 0;
if (scanf("%ld", &nb) == 0)
return EXIT_FAILURE;
// main algo
uint64_t *values = (uint64_t*) malloc(sizeof(uint64_t)*nb);
uint64_t *max = (uint64_t*) calloc(nb, sizeof(uint64_t));
for(uint64_t i =0; i < nb; i++){
scanf("%ld", values + i);
}
if (nb <= 5){
uint64_t acc = 0;
for (uint64_t i = 1; i < (nb == 5 ? 4 : nb) - 1; i++){
acc = (acc < values[i]) ? values[i] : acc;
}
if (nb == 5)
acc = max2(acc, values[4] + values[1]);
printf("%ld", acc);
}
max[0] = 0;
max[1] = values[1];
max[2] = values[2];
max[3] = values[3];
max[4] = values[4] + values[1];
max[5] = values[5] + max2(values[1], values[2]);
for (uint64_t i = 6; i < nb - 1; i++){
max[i] = values[i] + max3(max[i-3], max[i-4], max[i-5]);
}
printf("%ld\n", max3(max[nb-2], max[nb-3], max[nb-4]));
return EXIT_SUCCESS;
}
Test details
Test 1
Verdict: WRONG ANSWER
| input |
|---|
| 5 9 4 1 6 6 |
| correct output |
|---|
| 6 |
| user output |
|---|
| 106 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 6 5 6 2 4 10 1 |
| correct output |
|---|
| 16 |
| user output |
|---|
| 16 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 10 8 9 10 2 7 1 10 10 1 4 |
| correct output |
|---|
| 26 |
| user output |
|---|
| 26 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 100 1 8 8 5 7 10 9 4 8 10 6 3 8 7 ... |
| correct output |
|---|
| 243 |
| user output |
|---|
| 243 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 1000 10 7 5 6 5 2 5 3 2 2 1 6 8 7 8... |
| correct output |
|---|
| 2230 |
| user output |
|---|
| 2230 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 10000 9 1 8 2 6 5 1 3 3 10 6 3 9 3 1... |
| correct output |
|---|
| 22363 |
| user output |
|---|
| 22363 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 100000 5 5 4 6 8 7 9 6 3 2 5 8 7 3 5 ... |
| correct output |
|---|
| 226636 |
| user output |
|---|
| 226636 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 1000000 5 8 5 7 9 1 9 10 3 6 1 8 3 9 7... |
| correct output |
|---|
| 2259395 |
| user output |
|---|
| 2259395 |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 1000000 4 5 3 5 4 3 6 7 10 6 3 9 7 9 1... |
| correct output |
|---|
| 2260761 |
| user output |
|---|
| 2260761 |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 1000000 10 3 6 7 7 10 4 4 5 2 9 4 6 10... |
| correct output |
|---|
| 2260407 |
| user output |
|---|
| 2260407 |
Test 11
Verdict: WRONG ANSWER
| input |
|---|
| 3 87 3 123 |
| correct output |
|---|
| 3 |
| user output |
|---|
| 33 |
Test 12
Verdict: WRONG ANSWER
| input |
|---|
| 2 175 95 |
| correct output |
|---|
| 0 |
| user output |
|---|
| _33 |
Test 13
Verdict: WRONG ANSWER
| input |
|---|
| 1 42 |
| correct output |
|---|
| 0 |
| user output |
|---|
