Cod sursa(job #672290)
| Utilizator | Data | 1 februarie 2012 20:33:55 | |
|---|---|---|---|
| Problema | Deque | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include<iostream.h>
#include<fstream.h>
#define DN 10000005
#define DM 500005
int a[DM], s=0, poz;
ifstream fin("deque.in");
ofstream fout("deque.out");
int main()
{
int n, k, min1=DN, i, j, l;
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>a[i];
if(poz<=i-k && i>=k)
{
min1=DN;
for(j=i-k+1;j<=i;j++)
if(a[j]<min1)
min1=a[j], poz=j-1;
s+=min1;
}
else
if(min1>=a[i])
min1=a[i], poz=i, s+=a[i];
else
{
if(i>k)
{
l=i;
while(min1!=a[l])
l--;
s+=a[l];
}
}
}
fout<<s;
}
