CSES - Datatähti 2021 alku - Results
Submission details
Task:Sanalista
Sender:jogr
Submission time:2020-09-28 16:04:47 +0300
Language:C++ (C++11)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED100
Test results
testverdicttime
#1ACCEPTED0.01 sdetails
#2ACCEPTED0.01 sdetails
#3ACCEPTED0.01 sdetails

Code

#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct letter {
char c;
int num;
};
bool is_even(int num) {
return !(num & 1);
}
bool has_even_letters(string str) {
vector<letter> letters;
letters.push_back(letter());
// get number of characers in the word
for (uint i = 0; i < str.length(); i++) {
bool applied = false;
for (uint x = 1; x < letters.size(); x++) {
// add to current counter, if found
if (str.at(i) == letters[x].c) {
letters[x].num++;
applied = true;
break;
}
}
// create new counter, if not already existing
if (!applied) {
letter l;
l.c = str.at(i);
l.num = 1;
letters.push_back(l);
}
}
// check if there is even number of each letter
for (uint i = 1; i < letters.size(); i++) { // starts from 1, because of the empty struct at 0
if (!is_even(letters[i].num)) return false;
}
return true;
}
int main() {
int num;
vector<string> str;
cin >> num;
for (int i = 0; i < num; i++) {
string s;
cin >> s;
str.push_back(s);
}
int counter = 0;
// get number of the words
for (uint i = 0; i < str.size(); i++) {
if (has_even_letters(str[i])) counter++;
}
cout << counter;
return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
1000
korvata
sopimusaika
nuhatartunta
korttiautomaatti
...

correct output
15

user output
15

Test 2

Verdict: ACCEPTED

input
1000
pub
hansikaslokero
erikoisvalmisteinen
unijukka
...

correct output
42

user output
42

Test 3

Verdict: ACCEPTED

input
1000
haapalastu
toipumisaika
mustalaiskieli
taidelainaamo
...

correct output
70

user output
70