Cod sursa(job #902810)

Utilizator DaNutZ2UuUUBB Bora Dan DaNutZ2UuU Data 1 martie 2013 16:52:16
Problema Cc Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#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;
}