Pagini recente » Cod sursa (job #2321463) | Cod sursa (job #564092) | Cod sursa (job #1883051) | Cod sursa (job #1611621) | Cod sursa (job #1486454)
#include <bits/stdc++.h>
using namespace std;
int n, a[305][305], cnt;
struct trio
{
char ch;
int x, y;
};
trio t[700];
void Citire()
{
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();
}
void SchLin(int k, int p)
{
int i;
for (i = 1; i <= n; i++)
swap(a[k][i], a[p][i]);
}
void SchCol(int k, int p)
{
int i;
for (i = 1; i <= n; i++)
swap(a[i][k], a[i][p]);
}
/// determina pozitia minimului dintre a[i,i],...,a[n,n]
int Minim(int k)
{
int i, p;
p = k;
for (i = k + 1; i <= n; i++)
if (a[p][p] > a[i][i])
p = i;
return p;
}
void Rezolva()
{
int i, k;
trio w;
cnt = 0;
for (i = 1; i <= n; i++)
{
k = Minim(i);
if (k != i)
{
w.ch = 'L'; w.x = i; w.y = k;
t[++cnt] = w;
w.ch = 'C';
t[++cnt] = w;
SchLin(k, i);
SchCol(k, i);
}
}
ofstream fout("grozavesti.out");
fout << cnt << "\n";
for (i = 1; i <= cnt; ++i)
fout << t[i].ch << " " << t[i].x << " " << t[i].y << "\n";
fout.close();
}
int main()
{
Citire();
Rezolva();
return 0;
}