Pagini recente » Cod sursa (job #2552664) | Cod sursa (job #1835469) | Cod sursa (job #2499825) | Cod sursa (job #1108144) | Cod sursa (job #177830)
Cod sursa(job #177830)
#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;
}