Cod sursa(job #1868119)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 4 februarie 2017 16:28:53
Problema Grozavesti Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
#include <vector>
#include <cmath>
#define MaxN 305
#define INF 2140000000
using namespace std;

FILE *IN,*OUT;

int junk,N,v[MaxN],minpos=0,dim=0;
pair<int,int> moves[MaxN];
void GetMin(int start,int end)
{
	int Min=INF;minpos=-1;
	for(int i=start;i<=end;i++)
	{
		if(v[i]<Min)
		{
			Min=v[i];
			minpos=i;
		}
	}
}
int main()
{
    IN=fopen("grozavesti.in","r");
    OUT=fopen("grozavesti.out","w");
	
	fscanf(IN,"%d",&N);

	for(int i=1;i<=N;i++)
		for(int j=1;j<=N;j++)
		{
			fscanf(IN,"%d",&junk);
			if(i==j)v[i]=junk;
		}
	for(int i=1;i<=N;i++)
	{
		GetMin(i,N);
		if(minpos!=i)
		{
			swap(v[minpos],v[i]);
			moves[++dim].first=minpos,moves[dim].second=i;
		}
	}
	fprintf(OUT,"%d\n",2*dim);
	for(int i=1;i<=dim;i++)
	{
		fprintf(OUT,"L %d %d\nC %d %d\n",moves[i].first,moves[i].second,moves[i].first,moves[i].second);
	}
	return 0;
}