0% found this document useful (0 votes)
31 views2 pages

Luci

Uploaded by

anon_283685685
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views2 pages

Luci

Uploaded by

anon_283685685
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

#include <iostream>

#include <fstream>

using namespace std;

fstream f("ubuntzei.in",ios::in);
fstream g("ubuntzei.out",ios::out);

long long int n,i,v[501],k,m,w[501],x,y,z,a[501]


[501],j,q,s=0,min1=4000000000000,viz[501];

void tipar(int k)
{
s=0;
for(i=2;i<=k;i++)s=s+a[i-1][i];
if(s<min1)min1=s;

int solutie(int k)
{
int ok=1;
for(i=1;i<=q;i++)if(viz[i]==0)ok=0;

if(k==n&&ok==1)return 1;

else return 0;
}

int exista(int k)
{
if(v[k]<n)return 1;
else return 0;
}

int cont(int k)
{
int ok=1;
for(i=1;i<=k-1;i++)
if(v[k]==v[i])ok=0;
for(i=1;i<=q;i++)if(v[k]==v[i])viz[i]=1;
return ok;
}

void bkt()
{
v[1]=1;

k=2;
while(k>1)
if(exista(k))
{
v[k]++;if(cont(k))if(solutie(k))tipar(k);

else
{
k++;
v[k]=0;
}
}
else k--;
}

int main()
{
f>>n>>m;

f>>q;
for(i=1;i<=q;i++)f>>w[i];

for(i=1;i<=m;i++)
{
f>>x>>y>>z;
a[x][y]=a[y][x]=z;
}

bkt();
g<<min1;

f.close();
g.close();
return 0;
}

You might also like