Beingamanforever

Atcoder Express 2

Dec 6th, 2024
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.41 KB | None | 0 0
  1. /**
  2.  *    author:  compounding
  3.  *    created: 2024-12-06 18:33:24
  4.  **/
  5. #include <bits/stdc++.h>
  6. using namespace std;
  7. mt19937_64 RNG(chrono::steady_clock::now().time_since_epoch().count());
  8. #define NeedForSpeed                  \
  9.     ios_base::sync_with_stdio(false); \
  10.     cin.tie(NULL);                    \
  11.     cout.tie(NULL);
  12. #define int long long
  13. #define all(x) (x).begin(), (x).end()
  14. typedef vector<int> vi;
  15. typedef vector<vi> vvi;
  16. typedef vector<pair<int, int>> vpi;
  17. #define f first
  18. #define s second
  19. #define endl "\n"
  20. #define yes cout << "YES" << endl
  21. #define no cout << "NO" << endl
  22. const int mod = 1000000007;
  23. void solve()
  24. {
  25.     int n, m, q;
  26.     cin >> n >> m >> q;
  27.     vvi prefix(n + 1, vi(n + 1, 0));
  28.     for (int i = 0; i < m; i++)
  29.     {
  30.         // 2D prefix sum -> number of trains that start at l, end at r
  31.         int l, r;
  32.         cin >> l >> r;
  33.         prefix[l][r]++;
  34.     }
  35.     for (int i = 1; i <= n; i++)
  36.     {
  37.         for (int j = 1; j <= n; j++)
  38.         {
  39.             prefix[i][j] += prefix[i - 1][j] + prefix[i][j - 1] - prefix[i - 1][j - 1];
  40.         }
  41.     }
  42.     while (q--)
  43.     {
  44.         int p, q;
  45.         cin >> p >> q;
  46.         cout << prefix[q][q] - prefix[p - 1][q] - prefix[q][p - 1] + prefix[p - 1][p - 1] << endl;
  47.     }
  48. }
  49.  
  50. signed main()
  51. {
  52.     NeedForSpeed;
  53.     int t = 1;
  54.     // cin >> t;
  55.     while (t--)
  56.     {
  57.         solve();
  58.     }
  59.     return 0;
  60. }
  61.  
Advertisement
Add Comment
Please, Sign In to add comment