Cod sursa(job #821163)
| Utilizator | Data | 21 noiembrie 2012 20:18:41 | |
|---|---|---|---|
| Problema | Deque | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
int a[5000005];
using namespace std;
inline int min(int st, int dr){
int mid=(st+dr)/2;
int f1,f2;
if(st==dr) return a[st];
else {
f1=min(mid+1,dr);
f2=min(st,mid);
if(f1<f2) return f1;
else return f2;
}
}
int main (){
int n,i,k;
long long sum=0;
ifstream f("deque.in");
ofstream g("deque.out");
f>>n>>k;
for(i=1;i<=n;i++) f>>a[i];
for(i=1;i<=n-k+1;++i){
sum+=min(i,i+k-1);
}
g<<sum;
}
