Pagini recente » Cod sursa (job #85330) | Cod sursa (job #3180892) | Cod sursa (job #1920869) | Cod sursa (job #492189) | Cod sursa (job #810187)
Cod sursa(job #810187)
#include <cstdio>
#include <cstdlib>
using namespace std;
short int v[500010];
#define max 30000
char *p;
void evaluate(short int &ret)
{
while((*p > '9' || *p <'0') && *p != '-')
++p;
bool semn = 0;
ret = 0;
if(*p == '-')
{
semn = 1;
++p;
}
while(*p <= '9' && *p >= '0'){
ret = (ret * 10) + (*p - '0');
++ p;
}
if(semn)
ret *= -1;
}
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
short int n,i,k;
int size;
fseek(stdin,0,SEEK_END);
size = ftell(stdin);
p = (char*) malloc(size);
rewind(stdin);
fread(p,1,size,stdin);
evaluate(n);
evaluate(k);
for(i=1;i<=n;++i)
evaluate(v[i]);
int baza = max;
int bazamax,inceput;
for(i=1;i<=k;++i)
if(v[i] < baza)
baza = v[i];
bazamax = baza;
inceput = 1;
int j;
for(i=k+1;i<=n;++i)
{
if(v[i-k] == baza)
{
baza = max;
for(j=i-k+1;j<=i;++j)
if(v[j] < baza)
baza = v[j];
}
if(baza > bazamax)
{
inceput = i-k+1;
bazamax = baza;
}
}
printf("%d %d %d\n",inceput,inceput+k-1,bazamax);
return 0;
}