Cod sursa(job #1443683)

Utilizator FiliutaMariusFMI Filiuta Marius FiliutaMarius Data 28 mai 2015 14:27:25
Problema Asmax Scor 20
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I, Semestrul 2 Marime 0.7 kb
#include<iostream>
#include<fstream>
using namespace std;
int mat[16001][16001];
int dfs(int n, int nod)
{
    int suma=0,x;
    for(int i=1;i<=n;i++)
        if(nod!=i && (mat[nod][i] || mat[i][nod]) )
        {
            mat[nod][i]=mat[i][nod]=0;
            x=dfs(n,i);
            if(x>0)
                suma+=x;

        }
    if(suma+mat[nod][nod]>0)
        return suma+mat[nod][nod];
    else
        return 0;
}
int main ()
{
    int n,x,y;
    ifstream in("asmax.in");
    ofstream out("asmax.out");
    in>>n;
    for(int i=1;i<=n;i++)
        in>>mat[i][i];
    for(int i=0;i<n;i++)
    {
        in>>x>>y;
        mat[x][y]=mat[y][x]=1;
    }
    out<<dfs(n,1);
}