Pagini recente » Cod sursa (job #645612) | Cod sursa (job #61188) | Cod sursa (job #2328929) | Cod sursa (job #2564882) | Cod sursa (job #657281)
Cod sursa(job #657281)
#include <stdio.h>
FILE *f=fopen("grozavesti.in","r"),*g=fopen("grozavesti.out","w");
long int n,a[302][302],poz=0;
struct solutie{
char c;
long int a;
long int b;
}v[3005];
void citire(){
long int i,j;
fscanf(f,"%ld\n",&n);
for(i=1; i<=n; i++){
for(j=1; j<=n; j++){
fscanf(f,"%ld ",&a[i][j]);
}
}
}
void interschcol(long int x,long int y){
long int i,aux;
for(i=1; i<=n; i++){
aux=a[i][x];
a[i][x]=a[i][y];
a[i][y]=aux;
}
}
void interschlinie(long int x,long int y){
long int i,aux;
for(i=1; i<=n; i++){
aux=a[x][i];
a[x][i]=a[y][i];
a[y][i]=aux;
}
}
void parcurgere(){
long int i,min=1000001,t,p;
for(t=1; t<=n; t++){
min=a[t][t];
// printf("min=%ld\n",min);
p=t;
for(i=t+1; i<=n; i++){
if(a[i][i]<min){
min=a[i][i];
p=i;
}
}
if(p!=t){
// printf("%ld %ld\n",t,p);
//interschimbare
poz++;
v[poz].c='C'; v[poz].a=t; v[poz].b=p;
interschcol(t,p);
poz++;
v[poz].c='L'; v[poz].a=t; v[poz].b=p;
interschlinie(t,p);
}
}
}
void afisare(){
long int i;
fprintf(g,"%ld\n",poz);
for(i=1; i<=poz; i++){
fprintf(g,"%c %ld %ld\n",v[i].c, v[i].a, v[i].b);
}
}
int main()
{
citire();
parcurgere();
afisare();
return 0;
}