fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define faster ios_base::sync_with_stdio(false); cin.tie(NULL)
  4. #define Bit(mask , i) ((mask >> i) & 1)
  5. #define fi first
  6. #define se second
  7. #define _LOG2(nl) 31 - __builtin_clz(nl)
  8. #define c_bit(nl) __builtin_popcount(nl)
  9. #define db double
  10. #define onBit(mask , i) (mask | (1 << i))
  11. #define offBit(mask , i) (mask & (~(1 << i)))
  12.  
  13. const int INF = 1e7;
  14. const int N = 2e5 + 7;
  15. int n , q;
  16. long long a[N] , b[N];
  17.  
  18. void inp(){
  19. cin >> n >> q;
  20. for (int i = 1 ; i <= n ; ++i){
  21. cin >> a[i];
  22. }
  23. sort(a + 1 , a + n + 1 , greater<long long>());
  24. while (q--){
  25. int l , r;
  26. cin >> l >> r;
  27. ++b[l];
  28. --b[r + 1];
  29. }
  30. for (int i = 1 ; i <= n ; ++i) b[i] += b[i - 1];
  31. sort(b + 1 , b + n + 1 , greater<long long>());
  32. }
  33.  
  34. void solve(){
  35. long long res = 0;
  36. for (int i = 1 ; i <= n ; ++i){
  37. if (b[i] == 0){
  38. cout << res;
  39. return;
  40. }
  41. res += b[i] * a[i];
  42. }
  43. cout << res;
  44. }
  45.  
  46. int main(){
  47. freopen("maxsum.inp" , "r" , stdin);
  48. freopen("maxsum.out" , "w" , stdout);
  49. faster;
  50. inp();
  51. solve();
  52. return 0;
  53. }
  54. // cnlk
  55.  
Success #stdin #stdout 0.01s 5316KB
stdin
Standard input is empty
stdout
Standard output is empty