Cod sursă (job #369186)

Utilizator avatar Mogeko Izvoreanu Valeria Mogeko IP ascuns
Problemă Dragoni2 (clasele 11-12) Compilator cpp | 0,98 kb
Rundă lasm_22_03_b Status evaluat
Dată 22 mar. 2018 17:08:16 Scor 10
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dragoni2.in");
ofstream fout("dragoni2.out");
typedef struct nod{
	int nr,w;
	nod*next;
}*lista;
int n,m,x,y,p,z;
lista lda[810],r;
int viz[810],A[810];
int coada[810];
void add(int x, lista &p,int z){
	lista r=new nod;
	r->nr=x;
	r->w=z;
	r->next=p;
	p=r;
}
int main(){
	fin>>p;
	if(p==1){
		fin>>n>>m;
		for(int i=1; i<=n; i++) fin>>A[i];
		for (int i=1; i<=m; i++) lda[i]=NULL;
	while(fin>>x>>y>>z) {
		add(y, lda[x],z);
		add(x, lda[y],z);
	}
	for (int i=1; i<=n; i++) viz[i]=0;
	int st,dr=1;
			viz[1]=1;
	        coada[1]=1;
	        for(st=dr; st<=dr; st++){
		        for(lista p=lda[coada[st]]; p; p=p->next) 
		        {
		        	 if(viz[p->nr]==0 && p->w<=A[1]){
		     	        viz[p->nr]=1;
		     	        dr++;
		     	        coada[dr]=p->nr;
			       } 
				}
		           
	            }
	}
	int mx=0;
	for (int i=2; i<=n; i++) if(coada[i] && A[i]>mx) mx=A[i];
	fout<<mx;
}