Pagini recente » Monitorul de evaluare | Istoria paginii utilizator/bombardier | Monitorul de evaluare | Diferente pentru utilizator/ionanghelina intre reviziile 22 si 21 | Cod sursa (job #263756)
Cod sursa(job #263756)
#include <fstream>
using namespace std;
fstream f;
fstream g;
int n,k;
long a;
long x;
long min1[2];
long min2[2];
long sum;
long i;
long j;
int flag;
int main()
{
min1[0] = min2[0] = 1000001;
f.open("deque.in",fstream::in);
g.open("deque.out",fstream::out);
f >> n >> k;
for(i=0;i<k;i++)
{
f >> a;
flag=0;
if(min1[0]>=a)
{
min1[0]=a;
min1[1]=i;
flag=1;
}
if(min2[0]>=a&&flag==0)
{
min2[0]=a;
min2[1]=i;
}
}
sum+=min1[0];
x=k;
while(x<n)
{
f>>a;
if(min1[1]<x-k+1)
{
if(min2[0]>=a)
{
min1[0]=a;
min1[1]=x;
}
else
{
min1[0]=min2[0];
min1[1]=min2[1];
min2[0]=a;
min2[1]=x;
}
}
else
if(min2[1]<x-k+1)
{
if(min1[0]>=a)
{
min2[0]=min1[0];
min2[1]=min1[1];
min1[0]=a;
min1[1]=x;
}
else
{
min2[0]=a;
min2[1]=x;
}
}
else
{
if(min1[0]>a)
{
min2[0]=min1[0];
min2[1]=min1[1];
min1[0]=a;
min1[1]=x;
}
}
sum+=min1[0];
x++;
}
f.close();
g << sum << "\n";
g.close();
return 0;
}