Pagini recente » Cod sursa (job #2312376) | Cod sursa (job #2319358) | Cod sursa (job #1689364) | Cod sursa (job #559253) | Cod sursa (job #638179)
Cod sursa(job #638179)
#include<fstream>
#include<vector>
using namespace std;
ifstream in("zombie.in");
ofstream out("zombie.out");
int d,n,k;
int cost=0,suma=0,contor=0;
int main()
{
in>>d>>n>>k;
vector<int>v; v.reserve(n+1);
for(size_t i=1;i<=n;i++)
in>>v[i];
for(size_t i=1;i<=n-1;i++)
{
if((v[i+1]-v[i])>=d)
cost++;
else if((v[i+1]-v[i])<d)
{
if(suma==(d-1))
{ if(contor==1) cost++;
else { cost+=k; contor=suma=0;
}
}
if((v[i+1]-v[i]+suma)<d)
{
suma+=v[i+1]-v[i];
contor++;
}
else if((v[i+1]-v[i]+suma)>d)
{
cost++;
if(contor==1)
{
suma=contor=0;
cost++;
}
else if(contor>1)
{
cost+=k;
suma=contor=0;
}
}
}
}
if(suma!=0)
{
if(contor==1) cost++;
else cost+=k;
}
out<<cost;
}