Cod sursa(job #717783)

Utilizator iarbaCrestez Paul iarba Data 20 martie 2012 10:58:49
Problema Farfurii Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <stdio.h>

long min(long x,long y)
{
int aux;
if(x>y){aux=y;}
else{aux=x;}
return aux;
}

FILE *f,*g;
long n,k,i,r,a[100002],mem,j;
int main()
{
	f=fopen("farfurii.in","r");
	g=fopen("farfurii.out","w");
	fscanf(f,"%ld%ld",&n,&k);
	i=n;
	while(k){
		r=min(n-i,k);
		a[i]=r;
		k-=r;
		i--;
		if(k==0){mem=i+1;}
	        }
	k=1;
	while(a[k]==0){a[k]=k;k++;}
	for(j=n;j>mem;j--){
		if(a[mem]==a[j]){a[mem]=k;k++;}
		a[j]=k;
		k++;
	                  }
	for(i=1;i<=n;i++){fprintf(g,"%ld ",a[i]);}
	fclose(f);fclose(g);
}