CSES - Datatähti 2023 alku - Results
Submission details
Task:Sadonkorjuu
Sender:Ihminen
Submission time:2022-11-12 23:27:44 +0200
Language:C++ (C++17)
Status:COMPILE ERROR

Compiler report

input/code.cpp:3:9: error: macro names must be identifiers
    3 | #define ��R 9999
      |         ^
input/code.cpp:21:6: error: stray '\344' in program
   21 | int l�hin(int et�[], bool k�yty[]) {
      |      ^
input/code.cpp:21:17: error: stray '\344' in program
   21 | int l�hin(int et�[], bool k�yty[]) {
      |                 ^
input/code.cpp:21:28: error: stray '\344' in program
   21 | int l�hin(int et�[], bool k�yty[]) {
      |                            ^
input/code.cpp:25:23: error: stray '\344' in program
   25 |                 if (!k�yty[i] && et�[i] < min) {
      |                       ^
input/code.cpp:25:36: error: stray '\344' in program
   25 |                 if (!k�yty[i] && et�[i] < min) {
      |                                    ^
input/code.cpp:26:33: error: stray '\344' in program
   26 |                         min = et�[i];
      |                                 ^
input/code.cpp:41:48: error: stray '\304' in program
   41 |...

Code

#include <bits/stdc++.h>
#define ��R 9999
using namespace std;
int N, alk, matkat[6][6];
int** vaihtoehdot;
vector<int> satamat;
vector<int> split(const string& str, char delimiter) {
vector<int> tokens;
string token;
istringstream tokenStream(str);
while (getline(tokenStream, token, delimiter)) {
tokens.push_back(stoi(token));
}
return tokens;
}
int lhin(int et�[], bool kyty[]) {
int k = 0;
int min = INT_MAX;
for (int i = 0; i < N; i++) {
if (!kyty[i] && et�[i] < min) {
min = et�[i];
k = i;
}
}
return k;
}
void init() {
for (int k = 0; k < N; k++) {
for (int j = 0; j < N; j++) {
if (k == j) {
matkat[k][j] = 0;
}
else if (matkat[k][j] == 0) {
matkat[k][j] = ��R;
}
}
}
int rivit = N, pylv��t = satamat.size();
vaihtoehdot = new int* [rivit];
if (rivit)
{
vaihtoehdot[0] = new int[rivit * pylv��t];
for (int i = 1; i < rivit; ++i)
vaihtoehdot[i] = vaihtoehdot[0] + i * pylv��t;
}
}
void laskenta(int pylvs, int alk) {
int par[100], et�[100];
bool kyty[100] = { 0 };
fill(et�, et + N, INT_MAX);
alk = satamat[pylvs];
et�[alk] = 0;
par[alk] = -1;
for (int g = 0; g < N - 1; g++) {
int u = lhin(et�, kyty);
kyty[u] = true;
for (int v = 0; v < N; v++) {
if (alk == v) {
et�[v] = 0;
vaihtoehdot[v][pylvs] = et�[v];
}
if (!kyty[v] && (et�[u] + matkat[u][v]) < et�[v] && matkat[u][v] != 9999)
{
par[v] = u;
et�[v] = et�[u] + matkat[u][v];
vaihtoehdot[v][pylvs] = et�[v];
}
}
}
}
void nyt�() {
cout << "Satamat ovat ";
for (int l = 0; l < satamat.size(); l++) {
cout << satamat[l] + 1 << " ";
}
cout << endl;
cout << "Kaupunki:" << "\t\t\t";
for (int y = 0; y < satamat.size(); y++) {
cout << "Satama" << y << ":" << "\t\t\t";
}
cout << endl;
for (int t = 0; t < N; t++) {
cout << t << "\t\t\t";
for (int u = 0; u < satamat.size(); u++) {
cout << vaihtoehdot[t][u] << "\t\t\t";
}
cout << endl;
}
}
int main() {
cin >> N;
string inputString;
cin.ignore();
getline(cin, inputString);
stringstream stream(inputString);
std::vector<int> vlisatamat;
int n;
while (stream >> n) {
vlisatamat.push_back(n);
}
for (int z = 0; z < vlisatamat.size(); z++) {
if (vlisatamat[z] == 0) {
satamat.push_back(z);
}
}
int satamaM��r = satamat.size();
int rivim��r = N;
int laskuri = 0;
for (int i = 0; i < rivim��r - 1; i++) {
string line;
getline(cin, line);
vector<int> rivi = split(line, ' ');
istringstream iss(line);
int num;
iss >> num;
rivi.push_back(num);
matkat[rivi[0] - 1][rivi[1] - 1] = rivi[2];
matkat[rivi[1] - 1][rivi[0] - 1] = rivi[2];
}
init();
for (int g = 0; g < satamat.size(); g++) {
laskenta(g, satamat[g]);
}
int laskin = 0;
for (int j = 0; j < N; j++) {
int pienin = ��R;
for (int i = 0; i < satamat.size(); i++) {
if (*vaihtoehdot[j, i] < pienin) {
pienin = *vaihtoehdot[j, i];
}
}
laskin += pienin;
}
cout << laskin;
}