| Task: | Tulkki |
| Sender: | viiviP |
| Submission time: | 2025-10-31 19:01:43 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 12 |
| #2 | ACCEPTED | 32 |
| #3 | ACCEPTED | 56 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #2 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #3 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #4 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #5 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #6 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #7 | ACCEPTED | 0.00 s | 2, 3 | details |
| #8 | ACCEPTED | 0.00 s | 2, 3 | details |
| #9 | ACCEPTED | 0.00 s | 2, 3 | details |
| #10 | ACCEPTED | 0.00 s | 2, 3 | details |
| #11 | ACCEPTED | 0.00 s | 2, 3 | details |
| #12 | ACCEPTED | 0.00 s | 2, 3 | details |
| #13 | ACCEPTED | 0.00 s | 3 | details |
| #14 | ACCEPTED | 0.00 s | 3 | details |
| #15 | ACCEPTED | 0.07 s | 3 | details |
| #16 | ACCEPTED | 0.00 s | 3 | details |
| #17 | ACCEPTED | 0.05 s | 3 | details |
| #18 | ACCEPTED | 0.03 s | 3 | details |
Compiler report
input/code.cpp: In function 'int loop(int)':
input/code.cpp:28:9: warning: unused variable 'l' [-Wunused-variable]
28 | int l = 0;
| ^
input/code.cpp: In function 'int main()':
input/code.cpp:123:14: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<std::__cxx11::basic_string<char> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
123 | while (c < k.size()) {
| ~~^~~~~~~~~~Code
#include <iostream>
#include <sstream>
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
//map<char, ll> var = {'A': 0, 'B': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'J': 0,'K': 0, 'L': 0, 'M': 0, 'N': 0, 'O': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'U': 0, 'V': 0, 'W': 0, 'X': 0, 'Z': 0, 'Y':0};
//map<char, ll> var = {'A': 0, 'B': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'J': 0,'K': 0, 'L': 0, 'M': 0, 'N': 0, 'O': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'U': 0, 'V': 0, 'W': 0, 'X': 0, 'Z': 0, 'Y':0};
ll c = 0;
vector<string> k;
unordered_map<string, ll> var = {{"A", 0}, {"B", 0}, {"C", 0}, {"D", 0}, {"E", 0}, {"F", 0}, {"G", 0}, {"H", 0}, {"I", 0}, {"J", 0},{"K", 0} , {"L", 0} ,{"M", 0}, {"N", 0}, {"O", 0}, {"P", 0}, {"Q", 0} , {"R", 0}, {"S", 0} , {"T", 0}, {"U", 0}, {"V", 0}, {"W", 0}, {"X", 0}, {"Z", 0}, {"Y",0}};
int tulosta(int a) {
cout << var[k[a+1]]<<" ";
return 2;
}
int tyhjenna(int a) {
var[k[a+1]] = 0;
return 2;
}
int lisaa(int a) {
var[k[a+1]] += 1;
return 2;
}
int loop (int a) {
int l = 0;
int range = var[k[a+1]];
//cout << range<<" :range\n";
int id = a+4;
vector<string> komennot;
int rivit = 0;
int sisasilmukat = 0;
int sulkeet = 0;
while (k[id] != ")" || sisasilmukat != sulkeet) {
//cout << k[id] << " "<< sisasilmukat<< " " << sulkeet-1<<"\n";
rivit++;
//cout << rivit<<" uusi rivosa "<< k[id]<<"\n";
if (k[id] == ")") {
sulkeet++;
} else if (k[id] == "REPEAT") {
sisasilmukat++;
}
//cout << k[id]<<" \n";
komennot.push_back(k[id]);
id++;
}
//rivit++; //viimeinen sulje
//cout << "rivit c "<< rivit<<" sisasilmukat: "<<sisasilmukat<<"\n";
//cout << "tyhjä valmis " << " "<<5+rivit<<"\n";
if (range == 0){
return 5 + rivit; //ei lisata sisasilmukoita tähän
}
//return 5 + rivit;
int count = 0;
for (int i = 0; i<range;i++) {
id = a+4;
count = 0;
while (k[id] != ")") {
//cout <<"komento silmukassa "<< k[id]<<" \n";
if (k[id] == "PRINT") {
id += tulosta(id);
count += 2;
} else if (k[id] == "CLEAR") {
id += tyhjenna(id);
count += 2;
} else if (k[id] == "INCREASE") {
id += lisaa(id);
count += 2;
} else if (k[id] == "REPEAT") {
int ans = loop(id);
id += ans;
count += ans;
} else {
cout <<"tuntematon "<< k[id]<< " " << k[id-1]<< " "<< id<<"\n";
cout<< "1:" << k[id-4] << " " <<k[id-3] << " " << k[id-2] << " " << k[id+1]<< " " << k[id+2]<<" \n";
return 0;
}
}
}
//cout << "rivit : "<<count<<"\n";
//cout <<"lopp valmis\n";
return 5 + komennot.size();
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
//cout << "start\n";
string line;
while (getline(cin, line)) {
stringstream ss(line);
string osa;
bool f = false;
while (ss >> osa) {
string r = "";
for (auto m : osa) {
if (m != '#') { r += m;}
else {
f = true;
break;
}
}
if (r.size() > 0) {
k.push_back(r);
//cout << r<<"\n";
}
if (f) {break;}
}
}
//for (auto a : k) {
// cout << a<<"\n";
//}
//cout <<"hep\n";
while (c < k.size()) {
//cout << "komento "<< k[c]<<" " << c<<" \n";
int l = 0;
if (k[c] == "PRINT") {
l += tulosta(c);
} else if (k[c] == "CLEAR") {
l += tyhjenna(c);
} else if (k[c] == "INCREASE") {
l += lisaa(c);
} else if (k[c] == "REPEAT") {
int ans = loop(c);
l += ans;
} else {
cout <<"tuntematon2 "<< k[c]<<" \n";
return 0;
}
c += l;
//cout << c <<" ";
//return l;
//int ans = command(c); //lisaa muualle suoritetut rivit;
//c += ans;
}
}Test details
Test 1 (public)
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| PRINT X INCREASE X PRINT X INCREASE X PRINT X ... |
| correct output |
|---|
| 0 1 2 0 |
| user output |
|---|
| 0 1 2 0 |
Test 2 (public)
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE X # aybabtu PRINT X INCREASE # test ... |
| correct output |
|---|
| 1 3 |
| user output |
|---|
| 1 3 |
Test 3 (public)
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| # Create number 3 INCREASE X INCREASE X INCREASE X ... |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 4 (public)
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE A PRINT A INCREASE B PRINT B INCREASE C ... |
| correct output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
Test 5 (public)
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X ... |
| correct output |
|---|
| 999 |
| user output |
|---|
| 999 |
Test 6 (public)
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| PRINT X PRINT X PRINT X PRINT X PRINT X ... |
| correct output |
|---|
| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
| user output |
|---|
| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
Test 7 (public)
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 5 5 5 5 5 |
| user output |
|---|
| 5 5 5 5 5 |
Test 8 (public)
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 0 0 0 0 0 |
| user output |
|---|
| 0 0 0 0 0 |
Test 9 (public)
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 6 7 8 9 10 |
| user output |
|---|
| 6 7 8 9 10 |
Test 10 (public)
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 5 5 |
| user output |
|---|
| 5 5 |
Test 11 (public)
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 20 |
| user output |
|---|
| 20 |
Test 12 (public)
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE A INCREASE A INCREASE B INCREASE B ... |
| correct output |
|---|
| 42 |
| user output |
|---|
| 42 |
Test 13 (public)
Group: 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 |
| user output |
|---|
| 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 |
Test 14 (public)
Group: 3
Verdict: ACCEPTED
| input |
|---|
| # Create number 3 INCREASE A INCREASE A INCREASE... |
| correct output |
|---|
| 12 |
| user output |
|---|
| 12 |
Test 15 (public)
Group: 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X ... |
| correct output |
|---|
| 531441 |
| user output |
|---|
| 531441 |
Test 16 (public)
Group: 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 1337 |
| user output |
|---|
| 1337 |
Test 17 (public)
Group: 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE A INCREASE A REPEAT A TIMES ( REPEAT A TIMES ( ... |
| correct output |
|---|
| 1 2 1 2 1 1 3 4 3 4 3 4 3 4 3 ... |
| user output |
|---|
| 1 2 1 2 1 1 3 4 3 4 3 4 3 4 3 ... |
Test 18 (public)
Group: 3
Verdict: ACCEPTED
| input |
|---|
| # Efficient algorithm for find... |
| correct output |
|---|
| 2 3 5 7 11 13 17 19 23 29 31 3... |
| user output |
|---|
| 2 3 5 7 11 13 17 19 23 29 31 3... |
