Pagini recente » Cod sursa (job #2670680) | Cod sursa (job #1488580) | Cod sursa (job #566320) | Cod sursa (job #858831) | Cod sursa (job #70191)
Cod sursa(job #70191)
#include<fstream>
using namespace std;
int a[500000];
long k, n, pmax, pi, ps;
void citire(){
ifstream fin("secventa.in");
fin >> n >> k;
for (int i=0;i<n;i++)
fin >> a[i];
fin.close();
}
long posmin(long pic, long &psc) {
long pm = pic;
psc = pic + k;
for (long i = pm; i < psc; i++)
if(a[pm] > a[i])
pm = i;
while (psc <= n && a[psc - 1] == a[pm])
psc++;
return pm;
}
void rezolva() {
int max = -30001;
pi = 0;
long pic = 0, psc;
pmax = posmin(0, psc); ;
pi = pic;
ps = psc;
while (pic <= n - k) {
long j = posmin(pic, psc);
if (a[j] > a[pmax]) {
pmax = j;
pi = pic;
ps = psc;
}
pic = j + 1;
}
}
void scrie(){
ofstream fout("secventa.out");
fout << pi + 1 << " " << ps << " " << a[pmax];
fout.close();
}
int main() {
citire();
rezolva();
scrie();
return 0;
}