fork(1) download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define all(v) v.begin(),v.end()
  4. #define MASK(i) (1LL << (i))
  5. #define ii pair<int,int>
  6. #define fi first
  7. #define se second
  8. #define endl '\n'
  9. #define forr(i,l,r,add) for(int i = l;i <= r; i = i + add)
  10. #define fodd(i,l,r,sub) for(int i = l;i >= r ; i = i - sub)
  11. template <typename T1, typename T2> bool minimize(T1 &a, T2 b) {if (a > b) {a = b; return true;} return false;}
  12. template <typename T1, typename T2> bool maximize(T1 &a, T2 b) {if (a < b) {a = b; return true;} return false;}
  13.  
  14. using namespace std;
  15.  
  16. mt19937 rd(chrono::steady_clock::now().time_since_epoch().count());
  17. #define rand rd
  18.  
  19. long long Rand(long long l , long long h){
  20. assert(l <= h);
  21. return l + 1ll * rd() % (h - l + 1) * (rd() % (h - l + 1)) % (h - l + 1);
  22. }
  23.  
  24.  
  25. //////////////////////////////////////////////////////////// end of template ////////////////////////////////////////////////////////////
  26.  
  27. const int MAX = 5005 , MOD = 1e9 + 7;
  28. ii save[MAX];
  29. int n;
  30.  
  31. void INP(){
  32. cin >> n;
  33. forr(i , 1 , n , 1) cin >> save[i].fi >> save[i].se;
  34. sort(save + 1 , save + 1 + n);
  35. int res = 0;
  36. forr(i , 1 , n , 1){
  37. int le = -1 , ri = 1e6 + 5;
  38. forr(j , i + 1 , n , 1){
  39. if(le >= 1 && ri <= 1e6){
  40. if(save[j].se > le && save[j].se < ri){
  41. res = (res + 1ll * (save[j].fi - save[i].fi - 1) * (ri - le - 1)) % MOD;
  42. }
  43. }
  44. if(save[j].se < save[i].se) maximize(le , save[j].se);
  45. else minimize(ri , save[j].se);
  46. }
  47. }
  48. cout << res;
  49.  
  50. }
  51.  
  52. int main()
  53. {
  54. ios_base::sync_with_stdio(false);
  55. cin.tie(0);
  56. cout.tie(0);
  57. #define TASK ""
  58. //freopen(TASK".inp" , "r" , stdin);
  59. //freopen(TASK".out" , "w" , stdout);
  60. INP();
  61. return 0;
  62. }
  63.  
Success #stdin #stdout 0.01s 5316KB
stdin
Standard input is empty
stdout
Standard output is empty