Task: | Kolmijako |
Sender: | pupukani |
Submission time: | 2025-09-05 19:54:25 +0300 |
Language: | C++ (C++17) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | TIME LIMIT EXCEEDED | 0 |
#2 | TIME LIMIT EXCEEDED | 0 |
#3 | TIME LIMIT EXCEEDED | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | TIME LIMIT EXCEEDED | -- | 1, 2, 3 | details |
#2 | TIME LIMIT EXCEEDED | -- | 2, 3 | details |
#3 | TIME LIMIT EXCEEDED | -- | 3 | details |
Compiler report
input/code.cpp: In function 'int summa(std::vector<int>, int)': input/code.cpp:10:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare] 10 | for (int i = alku; i < v.size(); ++i) | ~~^~~~~~~~~~
Code
#include <iostream> #include <vector> #include <numeric> #include <sstream> #include <algorithm> int summa(std::vector<int> v, int alku = 0) { int summa = 0; for (int i = alku; i < v.size(); ++i) summa += v[i]; return summa; } std::stringstream ss; bool solve(std::vector<int> num, size_t i, int k, std::vector<std::vector<int>> kasat) { if (i == num.size()) // num is "empty" { if (summa(kasat[0]) == summa(kasat[1]) && summa(kasat[1]) == summa(kasat[2])) { ss << "YES" << std::endl; for (int j = 0; j < 3; ++j) { ss << kasat[j].size() << std::endl; for (int luku : kasat[j]) ss << luku << " "; ss << std::endl; } return true; } return false; } kasat[k].push_back(num[i]); int suurinsumma = summa(std::max(kasat[0], std::max(kasat[1], kasat[2]))); int pieninsumma = summa(std::min(kasat[0], std::min(kasat[1], kasat[2]))); if (suurinsumma > pieninsumma + summa(num, i + 1)) return false; if (solve(num, i + 1, 0, kasat) == true) return true; if (solve(num, i + 1, 1, kasat) == true) return true; if (solve(num, i + 1, 2, kasat) == true) return true; return false; } int main(void) { int t; std::cin >> t; for (int i = 0; i < t; ++i) { int n; std::cin >> n; std::vector<int> num(n); std::iota(num.begin(), num.end(),1); //std::reverse(num.begin(), num.end()); std::vector<std::vector<int>> kasat(3); if (solve(num, 0, 0, kasat)) continue; if (solve(num, 0, 1, kasat)) continue; if (solve(num, 0, 2, kasat)) continue; ss << "NO" << std::endl; } std::cout << ss.str(); }
Test details
Test 1
Group: 1, 2, 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
15 1 2 3 4 ... |
correct output |
---|
NO NO NO NO YES ... |
user output |
---|
(empty) |
Test 2
Group: 2, 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
100 1 2 3 4 ... |
correct output |
---|
NO NO NO NO YES ... |
user output |
---|
(empty) |
Test 3
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
100 564 895 546 980 ... |
correct output |
---|
YES 188 1 6 12 7 18 13 24 19 30 25 36 ... |
user output |
---|
(empty) |