Advertisement
MinhNGUYEN2k4

Untitled

Mar 16th, 2021
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.91 KB | None | 0 0
  1. //Nguyen Huu Hoang Minh
  2. /*
  3. #include <bits/stdc++.h>
  4. #define sz(x) int(x.size())
  5. #define all(x) x.begin(),x.end()
  6. #define reset(x) memset(x, 0,sizeof(x))
  7. #define pb push_back
  8. #define mp make_pair
  9. #define fi first
  10. #define se second
  11. #define N 10005
  12. #define remain(x) if (x > MOD) x -= MOD
  13. #define ii pair<int, int>
  14. #define iiii pair< ii , ii >
  15. #define viiii vector< iiii >
  16. #define vi vector<int>
  17. #define vii vector< ii >
  18. #define bit(x, i) (((x) >> (i)) & 1)
  19. #define Task "test"
  20. #define int long long
  21.  
  22. using namespace std;
  23.  
  24. typedef long double ld;
  25. const int inf = 1e10;
  26. const int minf = -1e10;
  27.  
  28. int n;
  29. ii a[N];
  30. int c[N];
  31. int sum=0;
  32. int f[N][N/2];
  33.  
  34. void readfile()
  35. {
  36.     ios_base::sync_with_stdio(false);
  37.     cin.tie(0);cout.tie(0);
  38.     if (fopen(Task".inp","r"))
  39.     {
  40.         freopen(Task".inp","r",stdin);
  41.         //freopen(Task".out","w",stdout);
  42.     }
  43.     cin >> n;
  44.     for(int i=n; i>=1; i--)
  45.     {
  46.         cin >> a[i].fi  >> a[i].se;
  47.         c[i] = a[i].fi-a[i].se;
  48.         sum += a[i].fi;
  49.     }
  50. }
  51.  
  52. void proc()
  53. {
  54.     //Gọi f[i][j] là chi phí chọn trợ lái khi xét từ người 1 đến i và chọn được j người.
  55.     for(int i=1; i<=n; i++) f[i][0] = 0;
  56.     for(int i=2; i<=n; i++){
  57.         for(int j=1; j<=(i-1)/2; j++)
  58.         {
  59.             // không chọn i là thằng trợ lái -> f[i][j] = f[i-1][j]
  60.             // chọn i là thằng trợ lái -> f[i][j] = f[i-1][j-1]+c[i]
  61.             f[i][j] = max(f[i-1][j],f[i-1][j-1]+c[i]);
  62.         }
  63.         if (i%2==0) f[i][i/2] = f[i-1][i/2-1]+c[i];
  64.     }
  65.     cout << sum-f[n][n/2];
  66. }
  67.  
  68. signed main()
  69. {
  70.     readfile();
  71.     proc();
  72.     return 0;
  73. }
  74. */
  75. #include <bits/stdc++.h>
  76. #define sz(x) int(x.size())
  77. #define all(x) x.begin(),x.end()
  78. #define reset(x) memset(x, 0,sizeof(x))
  79. #define pb push_back
  80. #define mp make_pair
  81. #define fi first
  82. #define se second
  83. #define N 10005
  84. #define remain(x) if (x > MOD) x -= MOD
  85. #define ii pair<int, int>
  86. #define iiii pair< ii , ii >
  87. #define viiii vector< iiii >
  88. #define vi vector<int>
  89. #define vii vector< ii >
  90. #define bit(x, i) (((x) >> (i)) & 1)
  91. #define Task "test"
  92. #define int long long
  93.  
  94. using namespace std;
  95.  
  96. typedef long double ld;
  97. const int inf = 1e10;
  98. const int minf = -1e10;
  99.  
  100. int sum =0;
  101. int n;
  102. ii a[N];
  103.  
  104. void readfile()
  105. {
  106.     ios_base::sync_with_stdio(false);
  107.     cin.tie(0);cout.tie(0);
  108.     if (fopen(Task".inp","r"))
  109.     {
  110.         freopen(Task".inp","r",stdin);
  111.         //freopen(Task".out","w",stdout);
  112.     }
  113.     cin >> n;
  114.     for(int i=1; i<=n; i++)
  115.     {
  116.         cin >> a[i].fi >> a[i].se;
  117.         sum += a[i].fi;
  118.     }
  119. }
  120.  
  121. void proc()
  122. {
  123.     priority_queue<int> q;
  124.     int ans = 0;
  125.     for(int i=1; i<n; i++)
  126.     {
  127.         q.push(a[i].fi-a[i].se);
  128.         if (i%2!=0)
  129.         {
  130.             ans += q.top();
  131.             q.pop();
  132.         }
  133.     }
  134.     cout << sum-ans;
  135. }
  136.  
  137. signed main()
  138. {
  139.     readfile();
  140.     proc();
  141.     return 0;
  142. }
  143.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement