CSES - Datatähti 2023 alku - Results
Submission details
Task:Sadonkorjuu
Sender:adex720
Submission time:2022-11-12 23:21:11 +0200
Language:C++ (C++17)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
Test results
testverdicttimegroup
#10.00 s1, 2details
#20.00 s1, 2details
#30.00 s1, 2details
#40.00 s1, 2details
#50.00 s1, 2details
#60.00 s1, 2details
#70.02 s2details
#80.00 s1, 2details
#90.02 s2details
#100.00 s1, 2details
#110.02 s2details
#120.02 s2details
#130.02 s2details
#140.02 s2details
#150.00 s1, 2details
#160.00 s1, 2details
#170.00 s1, 2details
#180.00 s1, 2details
#190.00 s1, 2details
#200.00 s1, 2details
#210.02 s2details
#220.02 s2details
#230.02 s2details
#240.00 s1, 2details
#250.02 s2details
#260.00 s1, 2details
#270.02 s2details
#280.00 s1, 2details
#290.02 s2details
#300.00 s1, 2details
#310.02 s2details

Compiler report

input/code.cpp: In function 'std::vector<std::__cxx11::basic_string<char> > split(std::string, int)':
input/code.cpp:59:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |     for (int i = 0; i < teksti.length(); i++)
      |                     ~~^~~~~~~~~~~~~~~~~

Code

#include <bits/stdc++.h>
#include <utility>
using namespace std;

class Kaupunki
{
public:
    bool pelto;
    int satamaan;

    vector<pair<Kaupunki, int>> naapurit;

    Kaupunki()
    {
        pelto = false;
        satamaan = 0x7FFFFFFF;
    }

    void lisaaNaapuri(Kaupunki itse, Kaupunki kaupunki, int etaisyys, bool takaisin)
    {
        if (pelto)
        {
            int matkaSatamaan = kaupunki.satamaan != 0x7FFFFFFF ? kaupunki.satamaan + etaisyys : 0x7FFFFFFF;
            if (matkaSatamaan < satamaan)
            {
                satamaan = matkaSatamaan;
                for (pair<Kaupunki, int> polku : naapurit)
                {
                    int pituus = matkaSatamaan + polku.second;
                    if (polku.first.satamaan > pituus)
                        polku.first.paivitaEtaisyysSatamaan(pituus);
                }
            }
        }

        pair<Kaupunki, int> polku = pair(kaupunki, etaisyys);
        naapurit.push_back(polku);
        if (takaisin)
            kaupunki.lisaaNaapuri(kaupunki, itse, etaisyys, false);
    }

    void paivitaEtaisyysSatamaan(int etaisyys)
    {
        satamaan = etaisyys;
        for (pair<Kaupunki, int> yhteys : naapurit)
        {
            int pituus = etaisyys + yhteys.second;
            if (yhteys.first.satamaan > pituus)
                yhteys.first.paivitaEtaisyysSatamaan(pituus);
        }
    }
};

vector<string> split(string teksti, int pituus)
{
    vector<string> jaettu(pituus);

    string osa;
    for (int i = 0; i < teksti.length(); i++)
    {
        char nykyinen = teksti[i];
        if (nykyinen == ' ')
        {
            jaettu.push_back(osa);
            osa = "";
        }
        else
        {
            osa += nykyinen;
        }
    }

    jaettu.push_back(osa);

    return jaettu;
}

int main()
{
    int n;
    std::cin >> n;

    string pellotRaw;
    cin >> pellotRaw;

    Kaupunki kaupungit[n];

    string onko;
    cin >> onko;
    vector<string> satamat = split(onko, n);

    for (int i = 0; i < n; i++)
    {
        kaupungit[i] = Kaupunki();
        kaupungit[i].pelto = satamat.at(i)[0] == '1';
    }

    for (int i = 0; i < n - 1; i++)
    {
        string matkat;
        cin >> matkat;

        vector<string> syote = split(matkat, 3);
        int kaupunki1Id = stoi(syote.at(0)) - 1;
        int kaupunki2Id = stoi(syote[1]) - 1;
        kaupungit[kaupunki1Id].lisaaNaapuri(kaupungit[kaupunki1Id], kaupungit[kaupunki2Id], stoi(syote[2]), true);
    }

    int yhteensa = 0;
    for (int i = 0; i < n; i++)
    {
        yhteensa += kaupungit[i].satamaan;
    }

    cout << yhteensa;
}

Test details

Test 1

Group: 1, 2

Verdict:

input
1
0

correct output
0

user output
2147483647

Test 2

Group: 1, 2

Verdict:

input
5
0 0 0 0 0
1 2 1
2 3 2
3 4 3
...

correct output
0

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 3

Group: 1, 2

Verdict:

input
4
1 0 1 1
1 2 10
2 3 20
2 4 30

correct output
60

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 4

Group: 1, 2

Verdict:

input
5
0 1 1 1 0
1 2 10
2 3 20
3 4 30
...

correct output
80

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 5

Group: 1, 2

Verdict:

input
5
0 1 0 1 1
1 2 1
2 3 5
3 4 3
...

correct output
6

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 6

Group: 1, 2

Verdict:

input
1000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
5506363

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 7

Group: 2

Verdict:

input
200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1795118520

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 8

Group: 1, 2

Verdict:

input
1000
0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 ...

correct output
293576

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 9

Group: 2

Verdict:

input
200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
816932444

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 10

Group: 1, 2

Verdict:

input
1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
3089

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 11

Group: 2

Verdict:

input
200000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
40839

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 12

Group: 2

Verdict:

input
200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
5683983203973

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 13

Group: 2

Verdict:

input
200000
0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 ...

correct output
58572993

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 14

Group: 2

Verdict:

input
200000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
32755

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 15

Group: 1, 2

Verdict:

input
1000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
126238345

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 16

Group: 1, 2

Verdict:

input
1000
0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 ...

correct output
278678

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 17

Group: 1, 2

Verdict:

input
1000
1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 ...

correct output
34929

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 18

Group: 1, 2

Verdict:

input
1000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1543963

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 19

Group: 1, 2

Verdict:

input
1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
39606

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 20

Group: 1, 2

Verdict:

input
1000
1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 ...

correct output
321598

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 21

Group: 2

Verdict:

input
200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
978670626

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 22

Group: 2

Verdict:

input
200000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

correct output
375218

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 23

Group: 2

Verdict:

input
200000
1 1 1 1 0 0 0 0 0 1 0 1 0 1 1 ...

correct output
60422556

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 24

Group: 1, 2

Verdict:

input
1000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
291990

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 25

Group: 2

Verdict:

input
200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
59607954

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 26

Group: 1, 2

Verdict:

input
1000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
990

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 27

Group: 2

Verdict:

input
200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
199982

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 28

Group: 1, 2

Verdict:

input
1000
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
7987

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 29

Group: 2

Verdict:

input
200000
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
3137875

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 30

Group: 1, 2

Verdict:

input
1000
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
4657693

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Test 31

Group: 2

Verdict:

input
200000
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1652889357

user output
(empty)

Error:
terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi