Cod sursa(job #124474)

Utilizator thebest001Neagu Rares Florian thebest001 Data 19 ianuarie 2008 13:22:22
Problema Grozavesti Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <stdio.h>
#define Coloana 0
#define Linie 1
int n,a[301][301];  // NU UITA SA SCHIMB DE LA 101 LA 301   !!
int C;
int g[301][3];
int Q=0;
void citeste()
{
	int i,j;
	scanf("%d",&n);
	for (i=1;i<=n;i++)
		for (j=1;j<=n;j++) scanf("%d",&a[i][j]);
}

void afiseaz()
{
	printf("%d\n",Q);
	for (int i=1;i<=Q;i++)
	{
		if (g[i][0]==Coloana) printf("C "); else printf("L ");
		printf("%d %d\n",g[i][1],g[i][2]);
	}
}

int  fajumate() // verific daca nu tre' sa fac nici-o operatie...
{
	for (int i=2;i<=n;i++)
		if (a[i][i]<a[i-1][i-1]) return 1;
	printf("0");
	return 0;
}


void fatotul(int x)
{
	int i,j,min=30000,mini,minj;
	for (i=x;i<=n;i++)
		for (j=x;j<=n;j++)
			if (a[i][j]<min)
			{
				min=a[i][j];
				mini=i;
				minj=j;
			}
	if (mini!=x)
	{
		g[++Q][0]=Linie;
		g[Q][2]=mini;
		g[Q][1]=x;
	}
	if (minj!=x)
	{
		g[++Q][0]=Coloana;
		g[Q][2]=minj;
		g[Q][1]=x;
	}
}

void apelfat()
{
	int x;
	for (x=1;x<=n;x++) fatotul(x);
}

int main()
{
	freopen("grozavesti.in","r",stdin);
	freopen("grozavesti.out","w",stdout);
	citeste();
	if (fajumate())
	{
		apelfat();
		afiseaz();
	}
	return 0;
}