#include <algorithm>
#include <iostream>
#include <numeric>
#include <vector>
#include <tuple>
using namespace std;
void my_unique(const vector<unsigned>& table, vector<size_t>& index_table) {
vector<size_t> temp = {index_table.front()}; //Mozna bez tego, ale chyba tak latwiej zrozumiec
for(size_t i = 1; i < index_table.size(); ++i) {
if(table[index_table[i]] != table[index_table[i-1]])
temp.push_back(index_table[i]);
}
index_table = move(temp);
}
int main() {
vector<unsigned> table = {3, 3, 2, 3, 1, 1, 1, 1, 1};
vector<size_t> index_table(table.size());
iota(begin(index_table), end(index_table), 0);
sort(begin(index_table), end(index_table), [&](size_t i, size_t j)
{if(table[i] == table[j]) return i < j;
return table[i] < table[j];});
my_unique(table, index_table);
unsigned least_index = table.size(), largest_gap = 0;
tuple<size_t, size_t> answer(table.size(), table.size());
for(const auto& x : index_table) {
least_index = (least_index < x) ? least_index : x;
if(least_index < x && largest_gap < x - least_index) {
largest_gap = x - least_index;
answer = make_tuple(least_index, x);
}
}
if(answer == make_tuple(table.size(), table.size()))
cout << "Brak.\n";
else
cout << get<0>(answer) << ' ' << get<1>(answer) << '\n';
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHR1cGxlPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgbXlfdW5pcXVlKGNvbnN0IHZlY3Rvcjx1bnNpZ25lZD4mIHRhYmxlLCB2ZWN0b3I8c2l6ZV90PiYgaW5kZXhfdGFibGUpIHsKICB2ZWN0b3I8c2l6ZV90PiB0ZW1wID0ge2luZGV4X3RhYmxlLmZyb250KCl9OyAvL01vem5hIGJleiB0ZWdvLCBhbGUgY2h5YmEgdGFrIGxhdHdpZWogenJvenVtaWVjCiAgZm9yKHNpemVfdCBpID0gMTsgaSA8IGluZGV4X3RhYmxlLnNpemUoKTsgKytpKSB7CglpZih0YWJsZVtpbmRleF90YWJsZVtpXV0gIT0gdGFibGVbaW5kZXhfdGFibGVbaS0xXV0pCgkgdGVtcC5wdXNoX2JhY2soaW5kZXhfdGFibGVbaV0pOwogICB9CiAgaW5kZXhfdGFibGUgPSBtb3ZlKHRlbXApOwogfQoKaW50IG1haW4oKSB7CiAgdmVjdG9yPHVuc2lnbmVkPiB0YWJsZSA9IHszLCAzLCAyLCAzLCAxLCAxLCAxLCAxLCAxfTsKICB2ZWN0b3I8c2l6ZV90PiBpbmRleF90YWJsZSh0YWJsZS5zaXplKCkpOwogIGlvdGEoYmVnaW4oaW5kZXhfdGFibGUpLCBlbmQoaW5kZXhfdGFibGUpLCAwKTsKICBzb3J0KGJlZ2luKGluZGV4X3RhYmxlKSwgZW5kKGluZGV4X3RhYmxlKSwgWyZdKHNpemVfdCBpLCBzaXplX3QgaikKCQkJCQkJCQkJCQkgIHtpZih0YWJsZVtpXSA9PSB0YWJsZVtqXSkgcmV0dXJuIGkgPCBqOwoJCQkJCQkJCQkJCSAgIHJldHVybiB0YWJsZVtpXSA8IHRhYmxlW2pdO30pOwogIG15X3VuaXF1ZSh0YWJsZSwgaW5kZXhfdGFibGUpOwogIHVuc2lnbmVkIGxlYXN0X2luZGV4ID0gdGFibGUuc2l6ZSgpLCBsYXJnZXN0X2dhcCA9IDA7CiAgdHVwbGU8c2l6ZV90LCBzaXplX3Q+IGFuc3dlcih0YWJsZS5zaXplKCksIHRhYmxlLnNpemUoKSk7CiAgZm9yKGNvbnN0IGF1dG8mIHggOiBpbmRleF90YWJsZSkgewoJbGVhc3RfaW5kZXggPSAobGVhc3RfaW5kZXggPCB4KSA/IGxlYXN0X2luZGV4IDogeDsKCWlmKGxlYXN0X2luZGV4IDwgeCAmJiBsYXJnZXN0X2dhcCA8IHggLSBsZWFzdF9pbmRleCkgewoJICBsYXJnZXN0X2dhcCA9IHggLSBsZWFzdF9pbmRleDsKCSAgYW5zd2VyID0gbWFrZV90dXBsZShsZWFzdF9pbmRleCwgeCk7CgkgfQogICB9CiAgaWYoYW5zd2VyID09IG1ha2VfdHVwbGUodGFibGUuc2l6ZSgpLCB0YWJsZS5zaXplKCkpKQogICBjb3V0IDw8ICJCcmFrLlxuIjsKICBlbHNlCiAgIGNvdXQgPDwgZ2V0PDA+KGFuc3dlcikgPDwgJyAnIDw8IGdldDwxPihhbnN3ZXIpIDw8ICdcbic7CiB9Cg==