fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. #define se second
  5. #define fi first
  6. typedef pair <int,int> pii;
  7. const int MAXN = 2e5+5;
  8.  
  9.  
  10. int n, q,l, r, a[MAXN];
  11. ll f[MAXN], ps[MAXN];
  12.  
  13.  
  14. /*int query(int x){
  15. ll sum =0;
  16. for (int i =x; i >= 1; i-= i&-i){
  17. sum += ft[i];
  18. }
  19. return sum;
  20. }
  21.  
  22. void update(int x, int y){
  23. for (int i =x; i <= n; i+=i&-i){
  24. ft[i] += y;
  25. }
  26. }*/
  27.  
  28. int main(){
  29. ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  30. cin >> n >> q;
  31. for (int i =1; i <=n; i++){
  32. cin >> a[i];
  33.  
  34. }
  35. while(q--){
  36. cin >> l >> r;
  37. f[l]++;
  38. f[r+1]--;
  39.  
  40. }
  41. ps[1] = f[1];
  42. cout << "frekuensi 1" << ":" << f[1] << " ";
  43. cout << "preff 1" << ":" << ps[1] << " ";
  44. for (int i =2; i <= n; i++){
  45. cout << "frekuensi" << i << ":" << f[i] << " ";
  46. ps[i] += ps[i-1]+f[i];
  47. cout << "preff" << i << ":" << ps[i] << " ";
  48. }
  49. sort(a+1, a+n+1);
  50. sort(ps+1, ps+n+1);
  51. ll ans =0;
  52. for (int i =1; i <= n; i++){
  53. ans += (a[i]*ps[i]);
  54. }
  55. cout << ans << endl;
  56. }
Success #stdin #stdout 0.01s 5652KB
stdin
3 3
5 3 2
1 2
2 3
1 3
stdout
frekuensi 1:2 preff 1:2 frekuensi2:1 preff2:3 frekuensi3:-1 preff3:2 25