Pagini recente » Cod sursa (job #2833847) | Cod sursa (job #2964354) | Cod sursa (job #511055) | Cod sursa (job #1920975) | Cod sursa (job #1488184)
#include <iostream>
#include <fstream>
using namespace std;
int a[50][50], n;
struct afisare
{
char s;
int i, p;
}v[10001];
inline void Inter_Linii(int Linia1, int Linia2)
{
int i;
for(i = 1; i <= n; i++)
swap(a[Linia1][i], a[Linia2][i]);
}
inline void Inter_Col(int Col1, int Col2)
{
int i;
for(i = 1; i <= n; i++)
swap(a[i][Col1], a[i][Col1]);
}
int main()
{
int i, j;
ifstream fin("grozavesti.in");
fin >> n;
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
fin >> a[i][j];
fin.close();
ofstream fout("grozavesti.out");
int l, mutari, p, minim;
l = 0;
mutari = 0;
for(i = 1; i < n; i++)
{
p = i;
/// caut pozitia p a minimului dintre elementele a[i][i], a[n][n]
/// interschimb liniile i cu p si coloanele i cu p
for(j = i; j <= n; j++)
if(a[j][j] < minim)
{
minim = a[j][j];
p = j;
}
if(i != p)
{
mutari += 2;
Inter_Linii(i, p);
v[++l].s = 'L';
v[l].i = i;
v[l].p = p;
Inter_Col(i, p);
v[++l].s = 'C';
v[l].i = i;
v[l].p = p;
}
}
fout << mutari << "\n";
for(int i = 1; i <= l; i++)
{
fout << v[i].s << " " << v[i].i << " " << v[l].p <<"\n";
}
fout.close();
return 0;
}