#include<iostream> #include<iomanip> using namespace std; int main() { int n,m,x,y,z,a,b,suma=0; cin>>n>>m; int tab[n+1][m+1]; for(x=0;x<n+1;x++) for(y=0;y<m+1;y++)tab[x][y]=0; int ta[m+1]; int spr[n+1][2]; for(x=0;x<n+1;x++)ta[x]=0; for(z=0;z<n+1;z++)tab[z][m]=0; for(z=0;z<n-1;z++){ cin>>a>>b; if(a>m){ tab[a][tab[a][m]]=b; tab[a][m]++; } if(b>m&&a<=m){ tab[b][tab[b][m]]=a; tab[b][m]++; } } for(z=1;z<=m;z++)cin>>ta[z]; for(z=m+1;z<=n;z++){ a=500000; b=0; for(x=0;x<tab[z][m];x++){ if(tab[z][x]<=m&&tab[z][x]!=0){ if(ta[tab[z][x]]<a&&ta[tab[z][x]]>0)a=ta[tab[z][x]]; if(ta[tab[z][x]]>b&&ta[tab[z][x]]<=500000)b=ta[tab[z][x]]; } spr[z][0]=b; spr[z][1]=a; } suma=suma+(b-a); } for(z=m+1;z<=n;z++){ for(x=0;x<tab[z][m];x++){ if(tab[z][x]>m&&tab[z][x]!=0){ if(spr[z][1]>spr[tab[z][x]][0])suma=suma+(spr[z][1]-spr[tab[z][x]][0]); if(spr[z][0]<spr[tab[z][x]][1])suma=suma+(spr[tab[z][x]][1]-spr[z][0]); } } } cout<<suma; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include<iostream> #include<iomanip> using namespace std; int main() { int n,m,x,y,z,a,b,suma=0; cin>>n>>m; int tab[n+1][m+1]; for(x=0;x<n+1;x++) for(y=0;y<m+1;y++)tab[x][y]=0; int ta[m+1]; int spr[n+1][2]; for(x=0;x<n+1;x++)ta[x]=0; for(z=0;z<n+1;z++)tab[z][m]=0; for(z=0;z<n-1;z++){ cin>>a>>b; if(a>m){ tab[a][tab[a][m]]=b; tab[a][m]++; } if(b>m&&a<=m){ tab[b][tab[b][m]]=a; tab[b][m]++; } } for(z=1;z<=m;z++)cin>>ta[z]; for(z=m+1;z<=n;z++){ a=500000; b=0; for(x=0;x<tab[z][m];x++){ if(tab[z][x]<=m&&tab[z][x]!=0){ if(ta[tab[z][x]]<a&&ta[tab[z][x]]>0)a=ta[tab[z][x]]; if(ta[tab[z][x]]>b&&ta[tab[z][x]]<=500000)b=ta[tab[z][x]]; } spr[z][0]=b; spr[z][1]=a; } suma=suma+(b-a); } for(z=m+1;z<=n;z++){ for(x=0;x<tab[z][m];x++){ if(tab[z][x]>m&&tab[z][x]!=0){ if(spr[z][1]>spr[tab[z][x]][0])suma=suma+(spr[z][1]-spr[tab[z][x]][0]); if(spr[z][0]<spr[tab[z][x]][1])suma=suma+(spr[tab[z][x]][1]-spr[z][0]); } } } cout<<suma; return 0; } |