Pagini recente » Cod sursa (job #576504) | Rating Ciocanescu Daria (daria15) | Cod sursa (job #1618208) | Cod sursa (job #1704054) | Cod sursa (job #2044481)
#include <cstdio>
#include <queue>
using namespace std;
FILE *fin=fopen("secventa.in","r");
FILE *fout=fopen("secventa.out","w");
struct el{
int poz;
};
deque <el> DQ;
int n, k;
int s;
int e[500001];
int minim=-30005, pozm;
int main()
{
el y;
fscanf(fin,"%d %d",&n,&k);
for (int i=1;i<=n;i++)
{
fscanf(fin,"%d",&e[i]);
y.poz=i;
while (!DQ.empty())
{
if (e[DQ.back().poz]>e[i])
DQ.pop_back();
else break;
}
DQ.push_back(y);
if (DQ.front().poz<=i-k)
DQ.pop_front();
if (i>=k)
{
if (e[DQ.front().poz]>minim)
minim=e[DQ.front().poz], pozm=DQ.front().poz;
}
}
fprintf(fout,"%d %d %d\n",pozm, pozm+k-1, minim);
fclose(fin);
fclose(fout);
return 0;
}