#include <iostream>
#include <numeric>
#include <vector>
using Vector = std::vector<int>;
using Iterator = Vector::iterator;
bool Find(Vector& V, Iterator& iFb, Iterator& iFe) {
int Found = -1;
for (auto i = V.begin(); i < V.end(); i++) {
for (auto j = V.end(); j > i; j--) {
int Temp = std::accumulate(i, j, 0, std::plus<int>());
if (Temp % 3 == 0) {
if (Found < 0 || Found < std::distance(i, j)) {
Found = std::distance(i, j);
iFb = i;
iFe = j;
}
}
}
}
return (Found >= 0);
}
int main() {
Vector Vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Iterator Fb, Fe;
if (Find(Vec, Fb, Fe)) {
std::cout << (Fb - Vec.begin()) << ":" << (Fe - Vec.begin() - 1);
std::cout << std::endl;
return 0;
};
std::cout << "No";
return 1;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPHZlY3Rvcj4KCnVzaW5nIFZlY3RvciA9IHN0ZDo6dmVjdG9yPGludD47CnVzaW5nIEl0ZXJhdG9yID0gVmVjdG9yOjppdGVyYXRvcjsKCmJvb2wgRmluZChWZWN0b3ImIFYsIEl0ZXJhdG9yJiBpRmIsIEl0ZXJhdG9yJiBpRmUpIHsKICBpbnQgRm91bmQgPSAtMTsKICBmb3IgKGF1dG8gaSA9IFYuYmVnaW4oKTsgaSA8IFYuZW5kKCk7IGkrKykgewogICAgZm9yIChhdXRvIGogPSBWLmVuZCgpOyBqID4gaTsgai0tKSB7CiAgICAgIGludCBUZW1wID0gc3RkOjphY2N1bXVsYXRlKGksIGosIDAsIHN0ZDo6cGx1czxpbnQ+KCkpOwogICAgICBpZiAoVGVtcCAlIDMgPT0gMCkgewogICAgICAgIGlmIChGb3VuZCA8IDAgfHwgRm91bmQgPCBzdGQ6OmRpc3RhbmNlKGksIGopKSB7CiAgICAgICAgICBGb3VuZCA9IHN0ZDo6ZGlzdGFuY2UoaSwgaik7CiAgICAgICAgICBpRmIgPSBpOwogICAgICAgICAgaUZlID0gajsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9CiAgcmV0dXJuIChGb3VuZCA+PSAwKTsKfQoKaW50IG1haW4oKSB7CiAgVmVjdG9yIFZlYyA9IHsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMH07CiAgSXRlcmF0b3IgRmIsIEZlOwogIGlmIChGaW5kKFZlYywgRmIsIEZlKSkgewogICAgc3RkOjpjb3V0IDw8IChGYiAtIFZlYy5iZWdpbigpKSA8PCAiOiIgPDwgKEZlIC0gVmVjLmJlZ2luKCkgLSAxKTsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7CiAgICByZXR1cm4gMDsKICB9OwogIHN0ZDo6Y291dCA8PCAiTm8iOwogIHJldHVybiAxOwp9Cg==