Pagini recente » Cod sursa (job #696940) | Cod sursa (job #816643) | Cod sursa (job #2305856) | Cod sursa (job #2178249) | Cod sursa (job #42953)
Cod sursa(job #42953)
/*
ID: Cipri
PROG: secventa
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <deque>
#include <stdio.h>
using namespace std;
void Read();
void Write();
void Solve();
int minim(int st, int dr);
int n, k, p, p1, inc, fin;
deque<int> q;
vector<int> a;
int main()
{
Read();
Solve();
Write();
return 0;
}
void Read()
{
FILE* fin = fopen("secventa.in", "rt");
fscanf(fin, "%d %d", &n, &k);
a.resize(n+1);
q.resize(k+1);
for(int i = 0; i < n; i++)
fscanf(fin, "%d", &a[i]);
fclose(fin);
}
void Solve()
{
for(int i = 0; i < k; i++)
q[i] = a[i];
p = minim(0, k-1);
for(int i = 1; i < n; i++)
{
if((i + k - 1) < n)
{
q.pop_front();
q.push_back(a[i+k-1]);
p1 = minim(i, i+k-1);
if(p1 > p)
{
inc = i+1;
fin = i+k;
p = p1;
}
}
}
}
int minim(int st, int dr)
{
int minim = 32001;
for(int i = st; i <= dr; i++)
if(a[i] < minim)
{
minim = a[i];
}
return minim;
}
void Write()
{
FILE* fout= fopen("secventa.out", "wt");
fprintf(fout, "%d %d %d", inc, fin, p);
fclose(fout);
}