Nu aveti permisiuni pentru a descarca fisierul grader_test7.in
Cod sursa(job #1248077)
Utilizator | Andrei Parfeni aparfeni | Data | 24 octombrie 2014 16:31:48 |
---|---|---|---|
Problema | Deque | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.93 kb |
#include <cstdio>
using namespace std;
int adev[5000001],v[5000001],z[5000001];
int main()
{ freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
int n,k,i,capat=0,s=0;
scanf("%d%d",&n,&k);
for(i=0;i<n;i++)
{ scanf("%d",&v[i]);
}
i=0;
while(i<k)
{ int p=0;
z[i]=v[i];
if(z[i]<z[i-1] && i==capat)
{ z[i-1]=z[i];
z[i]=z[i+1];
adev[z[i-1]]=0;
p=1;
}
if(z[i]<z[i-1] && z[i]<z[i+1] && i!=capat)
{ z[i]=z[i+1];
adev[z[i]]=0;
p=1;
}
if(p==0)
{ s=s+z[i];
}
i++;
}
while(i<=n)
{ z[i]=v[i];
adev[z[i]]=1;
if(adev[z[i-k]])
{ capat++;
s=s+z[i-k];
}
if(z[i]<z[i-1] && i==capat)
{ z[i-1]=z[i];
z[i]=z[i+1];
adev[z[i-1]]=0;
}
if(z[i]<z[i-1] && z[i]<z[i+1] && i!=capat)
{ z[i]=z[i+1];
adev[z[i]]=0;
}
i++;
}
printf("%d",s);
return 0;
}