Advertisement
a53

festivaluri

a53
Feb 8th, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include <fstream>
  2. #include <algorithm>
  3. #define Nmax 101
  4. using namespace std;
  5. ifstream f("festivaluri.in");
  6. ofstream g("festivaluri.out");
  7. int n,m,p,z,nr,ec,r,vf[Nmax],a[Nmax][Nmax],costf[Nmax]; /// vf-varfurile cu costfival; ec-energia consumata
  8.  
  9. void citire()
  10. {
  11. int x,y,co;
  12. f>>n>>m>>p>>z>>r;
  13. for(int i=1;i<=m;++i)
  14. f>>x>>y>>co,a[x][y]=co;
  15. for(int i=1;i<=r;++i)
  16. f>>vf[i];
  17. }
  18.  
  19. void roy_floyd() /// Determin drumurile minime
  20. {
  21. for(int k=1;k<=n;++k)
  22. for(int i=1;i<=n;++i)
  23. for(int j=1;j<=n;++j)
  24. if(a[i][k]&&a[k][j]&&(a[i][k]+a[k][j]<a[i][j]||!a[i][j])&&i!=j)
  25. a[i][j]=a[i][k]+a[k][j];
  26. }
  27.  
  28. void sortare()
  29. {
  30. for(int i=1;i<=r;++i)
  31. costf[i]=a[z][vf[i]];
  32. sort(costf+1,costf+r+1);
  33. }
  34.  
  35. void det_nr_fest() /// Determin nr de fivaluri la care are acces
  36. {
  37. ec=0;
  38. for(int i=1;i<=r;++i)
  39. if(ec+costf[i]<=p&&costf[i])
  40. ++nr,ec+=costf[i];
  41. g<<nr;
  42. }
  43.  
  44. int main()
  45. {
  46. citire();
  47. roy_floyd();
  48. sortare();
  49. det_nr_fest();
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement