Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<fstream>
- #include<algorithm>
- using namespace std;
- int const MAXN=1000000;
- struct iniziale
- {
- long long int amico;
- long long int solo;
- long long int due;
- long long int posizione;
- }A[MAXN];
- struct ordinato
- {
- long long int valeff;
- long long int posizione;
- }B[MAXN];
- bool confronta(ordinato &a, ordinato &b)
- {
- return a.valeff>b.valeff;
- }
- int main()
- {
- ifstream in("input.txt");
- ofstream out("output.txt");
- int n,k;
- in>>n;
- in>>k;
- for(int i=0;i<n;i++)
- {
- in>>A[i].amico;
- in>>A[i].solo;
- in>>A[i].due;
- A[i].posizione=i;
- }
- for(int i=0;i<n;i++)
- {
- if(A[i].solo>=A[A[i].amico].solo)
- B[i].valeff=A[i].solo;
- else
- B[i].valeff=A[i].due-(A[A[i].amico].solo-A[A[i].amico].due);
- B[i].posizione=i;
- }
- sort(B, B+n, confronta);
- long long int indice=0, sommamassima=0;
- for(int i=0;i<k;i++)
- {
- sommamassima+=B[i].valeff;
- }
- out<<sommamassima;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement