Pagini recente » Cod sursa (job #727599) | Cod sursa (job #2955188) | Cod sursa (job #2563848) | Cod sursa (job #1337395) | Cod sursa (job #1443683)
#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);
}