tron24

SIT-Prac-I

Feb 9th, 2021
411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.43 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #pragma GCC optimize("O3")
  4. #pragma GCC target("avx")
  5. #pragma GCC optimize("Ofast")
  6. #pragma GCC optimize("unroll-loops")
  7. #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  8.  
  9. #define ll long long
  10. #define MP make_pair
  11. #define ERR cout << "================================================\n"
  12. #define fi first
  13. #define se second
  14. #define PB push_back
  15. #define all(x) (x).begin(), (x).end()
  16. #define rall(x) (x).rbegin(), (x).rend()
  17. #define forn(i, n) for (ll i = 0; i < (ll)(n); ++i)
  18. #define for1(i, n) for (ll i = 1; i <= (ll)(n); ++i)
  19. #define ford(i, n) for (ll i = (ll)(n)-1; i >= 0; --i)
  20. #define fore(i, a, b) for (ll i = (ll)(a); i <= (ll)(b); ++i)
  21. #define print(v)          \
  22.     for (auto x : v)      \
  23.     {                     \
  24.         cout << x << " "; \
  25.     }
  26. #define umin(...) min({__VA_ARGS__})
  27. #define umax(...) max({__VA_ARGS__})
  28. #define MAX(v) *max_element(all(v))
  29. #define MIN(v) *min_element(all(v))
  30. #define SP << " " <<
  31. #define W(t)  \
  32.     ll t;     \
  33.     cin >> t; \
  34.     while (t--)
  35. #define FIO                           \
  36.     freopen("input.txt", "r", stdin); \
  37.     freopen("output.txt", "w", stdout);
  38. #define FAST                 \
  39.     ios::sync_with_stdio(0); \
  40.     cin.tie(0);              \
  41.     cout.tie(0);
  42.  
  43. using namespace std;
  44.  
  45. typedef pair<int, int> pii;
  46. typedef vector<int> vi;
  47. typedef vector<vi> vvi;
  48. typedef vector<ll> vll;
  49. typedef vector<vll> vvll;
  50.  
  51. const ll INF = 1e18;
  52. const ll NEG_INF = -1 * (1e18);
  53. using namespace std;
  54.  
  55. void usaco(string prob)
  56. {
  57.     freopen((prob + ".in").c_str(), "r", stdin);
  58.     freopen((prob + ".out").c_str(), "w", stdout);
  59. }
  60.  
  61. /* Function to check primality in O(sqrt(n)) */
  62. bool prime(int n)
  63. {
  64.     if (n < 2)
  65.         return false;
  66.     for (int x = 2; x * x <= n; x++)
  67.     {
  68.         if (n % x == 0)
  69.             return false;
  70.     }
  71.     return true;
  72. }
  73.  
  74. /* Function to get prime factorization of n */
  75. vector<int> getFactors(int n)
  76. {
  77.     vector<int> f;
  78.     for (int x = 2; x * x <= n; x++)
  79.     {
  80.         while (n % x == 0)
  81.         {
  82.             f.push_back(x);
  83.             n /= x;
  84.         }
  85.     }
  86.     if (n > 1)
  87.         f.push_back(n);
  88.     return f;
  89. }
  90.  
  91. void solve()
  92. {
  93.     ll n, m, ans = 0;
  94.     ;
  95.     cin >> n >> m;
  96.     vector<pair<ll, ll>> v(n);
  97.     forn(i, n)
  98.     {
  99.         cin >> v[i].fi >> v[i].se;
  100.         v[i].se += v[i].fi;
  101.     }
  102.  
  103.     sort(all(v));
  104.     vll a;
  105.     forn(i, n)
  106.     {
  107.         a.PB(v[i].fi);
  108.         a.PB(v[i].se);
  109.     }
  110.     sort(all(a));
  111.     v.PB({1e7 + 5, 1e7 + 5}); // may be unnecessary ??
  112.     forn(i, 2 * n)
  113.     {
  114.         ll temp_ans = 0;
  115.         ll start = a[i], end = a[i] + m;
  116.         forn(j, n)
  117.         {
  118.             if (v[j].fi <= a[i] && a[i] <= v[j].se)
  119.             {
  120.                 v[j].fi = a[i];
  121.             }
  122.         }
  123.      
  124.         forn(j, n)
  125.         {
  126.             if (start <= v[j].fi && v[j].fi <= end)
  127.             {
  128.                 temp_ans++;
  129.             }
  130.         }
  131.         ans = max(ans, temp_ans);
  132.     }
  133.     cout << ans << "\n";
  134. }
  135.  
  136. int main()
  137. {
  138.     //FIO
  139.     FAST
  140.  
  141.         //usaco("cowlands");
  142.  
  143.         ll TC = 1;
  144.     /*
  145.     Uncomment when multiple test cases
  146.     */
  147.  
  148.     //cin >> TC;
  149.     for1(tt, TC)
  150.     {
  151.         solve();
  152.     }
  153.     return 0;
  154. }
  155.  
  156. /* stuff you should look for
  157.     * int overflow, array bounds
  158.     * special cases (n=1?)
  159.     * do smth instead of nothing and stay organized
  160.     * WRITE STUFF DOWN
  161. */
Advertisement
Add Comment
Please, Sign In to add comment