Advertisement
Guest User

Untitled

a guest
May 22nd, 2017
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #include<fstream>
  2. #include<algorithm>
  3. using namespace std;
  4. int const MAXN=1000000;
  5. struct iniziale
  6. {
  7. long long int amico;
  8. long long int solo;
  9. long long int due;
  10. long long int posizione;
  11. }A[MAXN];
  12.  
  13.  
  14. struct ordinato
  15. {
  16. long long int valeff;
  17. long long int posizione;
  18.  
  19. }B[MAXN];
  20.  
  21. bool confronta(ordinato &a, ordinato &b)
  22. {
  23. return a.valeff>b.valeff;
  24. }
  25.  
  26. int main()
  27. {
  28. ifstream in("input.txt");
  29. ofstream out("output.txt");
  30. int n,k;
  31. in>>n;
  32. in>>k;
  33. for(int i=0;i<n;i++)
  34. {
  35. in>>A[i].amico;
  36. in>>A[i].solo;
  37. in>>A[i].due;
  38. A[i].posizione=i;
  39. }
  40. for(int i=0;i<n;i++)
  41. {
  42. if(A[i].solo>=A[A[i].amico].solo)
  43. B[i].valeff=A[i].solo;
  44. else
  45. B[i].valeff=A[i].due-(A[A[i].amico].solo-A[A[i].amico].due);
  46. B[i].posizione=i;
  47. }
  48. sort(B, B+n, confronta);
  49. long long int indice=0, sommamassima=0;
  50. for(int i=0;i<k;i++)
  51. {
  52. sommamassima+=B[i].valeff;
  53. }
  54. out<<sommamassima;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement