Pagini recente » Cod sursa (job #1225280) | Cod sursa (job #70447) | Cod sursa (job #2863520) | Cod sursa (job #2358538) | Cod sursa (job #610613)
Cod sursa(job #610613)
#include<fstream>
#include<vector>
using namespace std;
int n,A[305][305];
struct Solutie{char c;int x,y;};
vector <Solutie> sol;
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 InterschimbaLinie(int x,int y)
{
int k;
for(k=1;k<=n;k++)
swap(A[x][k],A[y][k]);
}
void InterschimbaColoana(int x,int y)
{
int k;
for(k=1;k<=n;k++)
swap(A[k][x],A[k][y]);
}
void Rezolvare()
{
int i,k,minim,poz;
Solutie s;
for(k=1;k<=n;k++)
{
minim=A[k][k];
poz=k;
for(i=k;i<=n;i++)
{
if(A[i][i]<minim)
{
minim=A[i][i];
poz=i;
}
}
if(poz!=k)
{
s.c='C'; s.x=k; s.y=poz; sol.push_back(s);
s.c='L'; sol.push_back(s);
InterschimbaColoana(k,poz);
InterschimbaLinie(k,poz);
}
}
}
void Afisare()
{
unsigned i;
ofstream fout("grozavesti.out");
fout<<sol.size()<<"\n";
for(i=0;i<sol.size();i++)
fout<<sol[i].c<<' '<<sol[i].x<<' '<<sol[i].y<<"\n";
fout.close();
}
int main()
{
Citire();
Rezolvare();
Afisare();
return 0;
}