Cod sursa(job #483955)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 11 septembrie 2010 00:37:02
Problema Sortare Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>

int n, a[5002], b[5002], c[5002], v[5002];

void rez (int nr, int x)
{
	int i;
	for (i = 1; i <= n && nr; i ++)
		if (v[i] == 0)
		{
			nr --;
			if (nr == 0)
				v[i] = x;
		}
}

int main ()
{
	freopen ("sortare.in", "r", stdin);
	freopen ("sortare.out", "w", stdout);
	
	int i, nr = 0;
	
	scanf ("%d", &n);
	a[1] = b[1] = c[1] = 1;
	for (i = 2; i <= n; i ++)
		scanf ("%d %d %d", &a[i], &b[i], &c[i]);
	
	for (i = n; i; i --, nr ++)
		if (a[i] != b[i] && b[i] != c[i] && c[i] != a[i])
		{
			rez (a[i], i - 1);
			if (a[i] < b[i])
				rez (b[i] - 1, i);
			else
				rez (b[i], i);
			i --;
		}
		else
			if (a[i] == b[i] || a[i] == c[i])
				rez (a[i], i);
			else
				rez (b[i], i);
	
	printf ("%d\n", nr);
	for (i = 1; i <= n; i ++)
		printf ("%d ", v[i]);
	
	return 0;
}