Cod sursa(job #717925)

Utilizator iarbaCrestez Paul iarba Data 20 martie 2012 12:28:54
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#include <fstream>
using namespace std;

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

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