Cod sursa(job #261964)

Utilizator drag0s93Mandu Dragos drag0s93 Data 18 februarie 2009 21:40:30
Problema Multimi2 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>

#define Nmax 1000020

struct fc{
	int x,y;
};

int n;
fc v[Nmax];
void solve()
{
	int smin=2000000,p=0,sum=0;
	for(int i=n;i>=1;--i)
	{
		sum+=v[i].x;
		if(v[i-1].y-sum>=0 && v[i-1].y-sum<smin)
		{
			smin=v[i-1].y-sum;
			p=i-1;
		}
		else if(v[i-1].y-sum<=0 && (v[i-1].y-sum)*(-1)<smin)
		{
			smin=(v[i-1].y-sum)*(-1);
			p=i-1;
		}
	}
	printf("%d\n",smin);
	printf("%d\n",n-(n-p));
	for(int i=1;i<=n-(n-p);++i)
		printf("%d ",v[i].x);
	printf("\n%d\n",n-p);
	for(int i=n-(n-p)+1;i<=n;++i)
		printf("%d ",v[i].x);
}
int main()
{
	freopen("multimi2.in","r",stdin);
	freopen("multimi2.out","w",stdout);
	scanf("%d",&n);
	v[1].x=1;
	v[1].y=1;
	for(int i=2;i<=n;++i)
	{
		v[i].x=i;
		v[i].y=v[i].x+v[i-1].y;
	}
	solve();
	return 0;
}