Cod sursa(job #2547787)
| Utilizator | Data | 15 februarie 2020 18:00:51 | |
|---|---|---|---|
| Problema | Deque | Scor | 15 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
using namespace std;
ifstream fi("deque.in");
ofstream fo("deque.out");
int n,k,A[5000002],ST[5000002],DR[5000002];
long long rez;
int main()
{
fi>>n>>k;
for(int i=1;i<=n;i++)
{
fi>>A[i];
if(A[i]%k==1)
ST[i]=A[i];
else
ST[i]=min(A[i],ST[i-1]);
}
DR[n]=A[n];
for(int i=n-1;i>=1;i--)
if(i%k==0)
DR[i]=A[i];
else
DR[i]=min(A[i],DR[i+1]);
int a,b;
a=1;
b=k;
while(b<=n)
{
rez+=min(DR[a],ST[b]);
a++;
b++;
}
fo<<rez;
return 0;
}
