CSES - Datatähti 2024 alku - Results
Submission details
Task:Lumimyrsky
Sender:Aatos
Submission time:2023-11-01 10:06:46 +0200
Language:C++17
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED100
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.00 sdetails
#9ACCEPTED0.00 sdetails
#10ACCEPTED0.00 sdetails
#11ACCEPTED0.00 sdetails

Code

#include <iostream>
#include <string>
#include <vector>
#include <stdint.h>

std::vector<uint16_t> parse_numbers(const std::string& input)
{
    std::vector<uint16_t> output;
    std::string curr_num = "";

    for (size_t i = 0; i < input.length(); i++)
    {
        char c = input.at(i);
        if ((c == ' ' || c == '\0' || i + 1 == input.length()) && curr_num.length() != 0)
        {
            if (i + 1 == input.length())
            {
                curr_num.push_back(c);
            }
            output.push_back(static_cast<uint16_t>(std::stoi(curr_num)));
            curr_num.clear();
            continue;
        }
        curr_num.push_back(c);
    }

    return output;
}

uint16_t calc_incline(const std::vector<uint16_t>& nums)
{
    uint16_t sum = 0;
    for (uint16_t i = 1; i < nums.size(); i++)
    { 
        if (nums[i] > nums[i - 1])
        {
            sum += nums[i] - nums[i - 1];
        }
    }

    //std::cout << sum << std::endl;

    return sum;
}

int32_t compare(const std::vector<uint16_t>& num_1, const std::vector<uint16_t>& num_2)
{    
    return calc_incline(num_1) < calc_incline(num_2) ? 1 : 2;
}

int main()
{
    std::string input_1, input_2;
    std::getline(std::cin, input_1);
    std::getline(std::cin, input_2);
    std::vector numbers_1 = parse_numbers(input_1);
    std::vector numbers_2 = parse_numbers(input_2);

    std::cout << compare(numbers_1, numbers_2);

	return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
0 0 1 1 1 2 2 2 1 0
0 1 2 3 2 2 3 0 1 1

correct output
1

user output
1

Test 2

Verdict: ACCEPTED

input
1 1 1 1 1 1 1 1 0 1
1 0 0 0 1 0 1 0 0 0

correct output
1

user output
1

Test 3

Verdict: ACCEPTED

input
1 2 2 2 0 0 0 2 0 0
0 1 0 1 1 2 1 2 1 2

correct output
1

user output
1

Test 4

Verdict: ACCEPTED

input
4 2 0 10 6 10 4 5 4 3
3 1 2 7 6 1 3 5 2 6

correct output
2

user output
2

Test 5

Verdict: ACCEPTED

input
6 0 7 9 3 1 5 6 9 4
9 0 1 0 2 2 0 1 4 7

correct output
2

user output
2

Test 6

Verdict: ACCEPTED

input
10 9 6 1 10 9 7 6 7 6
2 1 10 2 0 7 2 9 4 6

correct output
1

user output
1

Test 7

Verdict: ACCEPTED

input
22 5 87 83 20 36 92 98 49 9
61 40 77 35 52 49 29 100 18 81

correct output
1

user output
1

Test 8

Verdict: ACCEPTED

input
90 95 33 21 82 6 4 37 10 99
60 10 53 61 42 53 33 48 62 83

correct output
2

user output
2

Test 9

Verdict: ACCEPTED

input
7 22 78 32 44 98 73 46 98 31
54 26 50 8 7 42 27 1 50 53

correct output
2

user output
2

Test 10

Verdict: ACCEPTED

input
88 1 97 24 87 38 53 82 23 42
1 61 43 77 40 40 52 88 48 93

correct output
2

user output
2

Test 11

Verdict: ACCEPTED

input
1 36 50 50 50 0 13 31 14 1
22 88 42 13 25 13 8 39 34 49

correct output
1

user output
1