Pagini recente » Cod sursa (job #1872605) | Cod sursa (job #330709) | Cod sursa (job #2752701) | Cod sursa (job #365460) | Cod sursa (job #902810)
Cod sursa(job #902810)
#include <fstream>
#define INF 10000001
using namespace std;
ifstream fin("cc.in"); ofstream fout("cc.out");
int n, a[101][101], b[101][101], col, nrmin;
void Citire()
{
fin >> n;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
{
fin >> a[i][j];
if(i == 1)
b[i][j] = a[i][j];
}
}
int Minim(int k)
{
int minn = INF;
for(int j = 1; j <= n; j++)
if(b[k][j] <= minn)
{
minn = b[k][j];
col = j;
}
return minn;
}
void Scoate(int i, int col)
{
for(int k = i; k <= n; k++)
a[k][col] = INF;
}
void Dinamica()
{
for(int i = 2; i <= n; i++)
{
nrmin = Minim(i - 1);
Scoate(i, col);
for(int j = 1; j <= n; j++)
b[i][j] = a[i][j] + nrmin;
}
}
int main()
{
Citire();
Dinamica();
int minn = INF;
for(int i = 1; i <= n; i++)
if(b[n][i] < minn)
minn = b[n][i];
fout << minn;
fin.close();
fout.close();
return 0;
}