Pagini recente » Cod sursa (job #2064007) | Cod sursa (job #2899303) | Cod sursa (job #1616139) | Cod sursa (job #858391) | Cod sursa (job #3199649)
// https://www.infoarena.ro/problema/secventa
// Gigel are un sir de N numere intregi. Toata lumea stie ca o secventa este un subsir de numere
// care apar pe pozitii consecutive in sirul initial. Gigel a definit baza unei secvente ca fiind
// minimul valorilor elementelor din secventa respectiva.
// Cerinta
// Fiind dat un numar natural K, determinati pentru Gigel o secventa de lungime cel putin K cu baza maxima.
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
const int MAX_LIMIT = 500000;
const int MIN = -30000;
const int MAX = 30000;
struct result
{
int start;
int end;
int bmin;
} res;
int n, k, v[MAX_LIMIT];
int main()
{
fin >> n >> k;
int bmax = MIN;
int bmin = MAX;
for (int i = 1; i <= n; i++)
{
fin >> v[i];
}
for (int i = 1; i <= n - k + 1; i++)
{
int x = i + k - 1;
int bmin = MAX;
while (x >= i)
{
if (v[x] < bmin)
{
bmin = v[x];
}
x--;
}
if (bmax < bmin)
{
bmax = bmin;
res.start = i;
res.end = i + k - 1;
res.bmin = bmax;
}
}
fout << res.start << " " << res.end << " " << res.bmin << endl;
return 0;
}