CSES - Datatähti 2023 alku - Results
Submission details
Task:Sadonkorjuu
Sender:adex720
Submission time:2022-11-12 23:06:58 +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.01 s1, 2details
#40.00 s1, 2details
#50.00 s1, 2details
#60.00 s1, 2details
#70.01 s2details
#80.00 s1, 2details
#90.01 s2details
#100.00 s1, 2details
#110.01 s2details
#120.01 s2details
#130.01 s2details
#140.01 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.01 s2details
#220.01 s2details
#230.01 s2details
#240.00 s1, 2details
#250.01 s2details
#260.00 s1, 2details
#270.01 s2details
#280.00 s1, 2details
#290.01 s2details
#300.00 s1, 2details
#310.01 s2details

Compiler report

In member function 'Kaupunki& Kaupunki::operator=(Kaupunki&&)',
    inlined from 'int main()' at input/code.cpp:87:33:
input/code.cpp:5:7: warning: '<anonymous>.Kaupunki::pelto' may be used uninitialized [-Wmaybe-uninitialized]
    5 | class Kaupunki
      |       ^~~~~~~~
input/code.cpp: In function 'int main()':
input/code.cpp:87:33: note: '<anonymous>' declared here
   87 |         kaupungit[i] = Kaupunki();
      |                                 ^
In member function 'Kaupunki& Kaupunki::operator=(Kaupunki&&)',
    inlined from 'int main()' at input/code.cpp:87:33:
input/code.cpp:5:7: warning: '<anonymous>.Kaupunki::satamaan' may be used uninitialized [-Wmaybe-uninitialized]
    5 | class Kaupunki
      |       ^~~~~~~~
input/code.cpp: In function 'int main()':
input/code.cpp:87:33: note: '<anonymous>' declared here
   87 |         kaupungit[i] = Kaupunki();
      |                                 ^

Code

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

class Kaupunki
{
public:
    bool pelto;
    int satamaan;

    vector<pair<Kaupunki, int>> naapurit;

    Kaupunki(){

    };

    Kaupunki(bool onkoPelto)
    {
        pelto = onkoPelto;
    };

    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(const string &s, char delim)
{
    vector<string> result;
    stringstream ss(s);
    string item;

    while (getline(ss, item, delim))
    {
        result.push_back(item);
    }

    return result;
}

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

    string pellotRaw;
    cin >> pellotRaw;

    Kaupunki kaupungit[n];

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

    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, ' ');
        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
(empty)

Error:
terminate called after throwing an instance of 'std::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...

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::out_of_range'
  what():  vector::_M_r...