Pagini recente » Cod sursa (job #2288566) | Rating Moldovan Rares (Riciu) | Diferente pentru blog/viata-dupa-olimpiade-1 intre reviziile 30 si 22 | Diferente pentru blog/viata-dupa-olimpiade-1 intre reviziile 30 si 24 | Cod sursa (job #2019635)
#include <fstream>
#define nmax 5000005
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int N , st[nmax] , x , k , v[nmax] , t[nmax] , a[nmax] , K , S;
int main()
{
f >> N >> K;
for(int i = 1 ; i <= N ; i++)
{
f >> x;
a[i] = x ;
while(st[k] > x && k)
{ v[t[k]] = i;
st[k] = t[k] = 0;
k--;
}
st[++k] = x;
t[k] = i;
}
for(int i = 1 ; i <= N - K + 1 ; i++)
if(v[i] - i + 1 <= K && v[i]) S = S + a[v[i]];
else S = S + a[i];
g << S << "\n";
return 0;
}