#include using std::cin; using std::cout; struct nakup { int den = 0, cena = -1, pocet = 0; }; struct interval { long long vydelek = 0; int nakup = -1, prodej = -1; }; int main() { // Přečteme vstup int N, K; cin >> N >> K; // Získáme první den - to je zatím naše minimální cena nákupu nakup min; cin >> min.cena; min.pocet = K / min.cena; // Průběžně zjišťujeme maximální výdělek s prodejem v daných dnech interval max; for(int i = 1; i < N; ++i) { int cena; cin >> cena; long long vydelek = (long long)min.pocet * (cena - min.cena); // Update maximálního výdělku if (vydelek > max.vydelek) max = {vydelek, min.den, i}; // Update průběžného minima if(cena < min.cena) min = {i, cena, K / cena}; } // Edge-case, když nemůžeme vydělat if(max.vydelek == 0) cout << -1 << "\n"; // Vypíšeme maximálně výdělečný interval else cout << max.nakup << " " << max.prodej << "\n"; }