Pagini recente » Cod sursa (job #192136) | Cod sursa (job #2458240) | Cod sursa (job #2748095) | Cod sursa (job #2265921) | Cod sursa (job #178151)
Cod sursa(job #178151)
#include<fstream.h>
void muta (int v[100002], int n, int k, int val)
{
int i;
for (i=n-k+1;i<=n;i++)
v[i]-=val;
int nrd=1,nrs=1;
for(i=n-k+2;i<=n && v[i]==v[n-k+1];nrd++,i++);
for(i=n-k-1;i>=1 && v[i]==v[n-k];nrs++,i--);
int vals=v[n-k],vald=v[n-k+1];
for (i=n-k-nrs+1;i<=n-k-nrs+nrd;i++)
v[i]=vald;
for (i=n-k-nrs+nrd+1;i<=n-k+nrd;i++)
v[i]=vals;
}
int main()
{
int n,k,i,sw=1,v[100002];
long long l=0;
ifstream f("grupuri.in");
f>>k>>n;
for (i=1;i<=n;i++) f>>v[i];
f.close();
while (v[n-k+1]>0)
{
if (v[n-k]==0) sw=0;
l+=v[n-k+1]-v[n-k]+sw;
muta(v,n,k,v[n-k+1]-v[n-k]+sw);
}
ofstream g("grupuri.out");
g<<l;
g.close();
return 0;
}