Cod sursa(job #177830)

Utilizator Andreid91Ciocan Andrei Andreid91 Data 13 aprilie 2008 17:23:23
Problema Grupuri Scor 52
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#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,l=0,i,sw=1,v[100002];
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;
}