Pagini recente » Cod sursa (job #831440) | Monitorul de evaluare | Cod sursa (job #486545) | Istoria paginii runda/pregatire_1 | Cod sursa (job #161884)
Cod sursa(job #161884)
#include <stdio.h>
#include <stdlib.h>
#define N 50000
int n,k;
int sp[N], ind[N];
void init_ind()
{
for(int i=1;i<=n;++i) ind[i]=i;
}
void citeste()
{
freopen("secv2.in","r",stdin);
scanf("%d%d",&n,&k);
int x;
for(int i=1;i<=n;++i)
{
scanf("%d",&x);
sp[i]=sp[i-1]+x;
}
fclose(stdin);
}
int f_cmp(const void *a, const void *b)
{
int ia = *((int*)a);
int ib = *((int*)b);
return sp[ia]-sp[ib];
}
int main()
{
citeste();
init_ind();
qsort(ind+1,n,sizeof(int),f_cmp);
int i(1),j(n),s;
while(1)
{
if(ind[j]-ind[i]+1>=k) break;
if(sp[ind[j]]-sp[ind[j-1]] < sp[ind[i+1]]-sp[ind[i]]) --j;
else ++i;
}
freopen("secv2.out","w",stdout);
printf("%d %d %d\n", ind[i]+1, ind[j], sp[ind[j]] - sp[ind[i]]);
fclose(stdout);
return 0;
}