Pagini recente » Cod sursa (job #1356696) | Cod sursa (job #1281493) | Cod sursa (job #1949435) | Cod sursa (job #188277) | Cod sursa (job #162162)
Cod sursa(job #162162)
#include<stdio.h>
#define nmax 305
int a[nmax][nmax];
int n,ct;
typedef struct schimb{ int x,y;
char c;
};
schimb s[2*nmax];
void read()
{
int i,j;
freopen("grozavesti.in","r",stdin);
freopen("grozavesti.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
scanf("%d",&a[i][j]);
}
void solve()
{
int ind,i,ind2,min,j;
for(i=1;i<=n;++i)
{
ind=i;
min=a[ind][ind];
ind2=i;
for(j=ind+1;j<=n;++j)
if(a[j][j]<min)
{
min=a[j][j]; //caut el minim din submatricea cu coltul stg sus in a[ind][ind]
ind2=j;
}
if(ind2!=ind)
{
s[++ct].c='C';
s[ct].x=ind;
s[ct].y=ind2; //daca el a[ind][ind] nu e minim schimb linia ind cu linia ind2 si col ind cu col ind2
s[++ct].c='L';
s[ct].x=ind;
s[ct].y=ind2;
}
}
}
void print()
{
int i;
printf("%d\n",ct);
for(i=1;i<=ct;++i)
printf("%c %d %d\n", s[i].c, s[i].x, s[i].y);
}
int main()
{
read();
solve();
print();
return 0;
}