Cod sursa(job #1606993)

Utilizator NicholasFlamelFasie Vlad George NicholasFlamel Data 20 februarie 2016 19:04:04
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.21 kb
#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
    int n, k;
    int *v;
    int min = 0x7fffffff;
    int min2 = 0x7fffffff;
    int secv = 1;
    long long s = 0;
    FILE *f;
    if( (f = fopen("deque.in", "r")) == NULL ) {
        return -1;
    }
    fscanf(f, "%d %d", &n, &k);
    v = new int[n];
    for(int i = 0; i < n; i++) {
        fscanf(f, "%d ", &v[i]);
        if( i + 2 == k * secv ) {
            min2 = v[i];
            if( v[i] < min ) {
                min = v[i];
            }
        }
        if( i + 1 >= k ) {
            if( v[i] < min ) {
                min = v[i];
            }
            s += min;
            secv++;
            if( v[i] < min2 ) {
                min2 = v[i];
            }
            min = min2;
            min2 = 0x7fffffff;
        }
        if( i < k * secv ) {
            if( v[i] < min ) {
                min = v[i];
            }
            if( v[i] < min2 ) {
                min2 = v[i];
            }
        }
    }
    fclose(f);
    if( (f = fopen("deque.out", "w")) == NULL ) {
        return -1;
    }
    fprintf(f, "%lld", s);
    fclose(f);
    delete[] v;
    return 0;
}