Pagini recente » Cod sursa (job #2447400) | Cod sursa (job #2160462) | Cod sursa (job #2814300) | Cod sursa (job #1863355) | Cod sursa (job #847923)
Cod sursa(job #847923)
////var I 100p
//#include <fstream>
//#define NMax 5000003
//using namespace std;
//ifstream f("deque.in");
//ofstream g("deque.out");
//int a[NMax], deque[NMax],i,k,n,p,u;
//long long s;
//int main()
//{
// f>>n>>k;
// for(i=1; i<=n; i++) f>>a[i];
// p=1;u=0;
// for(i=1; i<=n; i++)
// {
// while(p<=u && a[i]<= a[deque[u]]) u--;
// deque[++u]=i;
// if(deque[p]==i-k) p++;
// if(i>=k) s+=a[deque[p]];
// }
// g<<s<<'\n';
// return 0;
//}
//var II 100p
#include <fstream>
#define NMax 10000003
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int deque[NMax],a[NMax],i,n,x,k,p,u;
long long s;
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)f>>a[i];
p=1;u=0;
for(i=1;i<=n;i++){
while(p<=u&&deque[u]>a[i])u--;
u++;deque[u]=a[i];
if(i>=k){
s+=(long long)deque[p];
if(deque[p]==a[i-k+1])p++;
}
}
g<<s<<'\n';
g.close();
return 0;
}
////var III 100p
//#include <fstream>
//#define NMax 10000003
//using namespace std;
//ifstream f("deque.in");
//ofstream g("deque.out");
//int deque[NMax],a[NMax],i,n,x,k,p,u;
//long long s;
//int main()
//{
// f>>n>>k;
// for(i=1;i<=n;i++)f>>a[i];
// p=1;u=1;deque[u]=a[1];
// for(i=2;i<=k;i++){
// while(p<=u&&deque[u]>a[i])u--;
// u++;deque[u]=a[i];
// }
// s+=(long long)deque[p];
// for(i=k+1;i<=n;i++){
// if(deque[p]==a[i-k])p++;
// while(p<=u&&deque[u]>a[i])u--;
// u++;deque[u]=a[i];
// s+=(long long)deque[p];
// }
// g<<s<<'\n';
// g.close();
// return 0;
//}