Pagini recente » Cod sursa (job #2477610) | Cod sursa (job #614091) | Cod sursa (job #95348) | Cod sursa (job #1605796) | Cod sursa (job #3216863)
/*
AM un sir cu N elem vr sa iau subsiruri de lg K si sa
iau minimul subsirului si sa l adun la o suma;
*/
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
const int MAX_VAL = 10000000;
#define VI vector<int>
void brute();
VI sir;
int N, K;
int main() {
brute();
}
void brute() {
fin >> N >> K;
sir = VI(N + 1);
for (int i = 0; i < N; ++i) {
fin >> sir[i];
}
long long suma = 0;
int lastPos = -1;
int minSub;
for (int i = 0; i <= N - K; ++i) {
if (lastPos < i) {
//fout << " AIO";
minSub = MAX_VAL;
for (int j = 0; j < K; ++j) {
if (sir[i + j] < minSub) {
minSub = sir[i + j];
lastPos = i + j;
}
}
} else {
minSub = min(sir[i + K - 1], minSub);
}
suma += minSub;
}
fout << suma;
}