Advertisement
Galebickosikasa

Untitled

Oct 15th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. //#pragma GCC target("avx,avx2")
  2. //#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
  3. //#pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,popcnt,tune=native")
  4. //#pragma GCC optimize("03")
  5.  
  6. #include <iostream>
  7. #include <vector>
  8. #include <cmath>
  9. #include <numeric>
  10. #include <algorithm>
  11. #include <unordered_set>
  12. #include <unordered_map>
  13. #include <set>
  14. #include <map>
  15. #include <queue>
  16. #include <deque>
  17. #include <bitset>
  18. #include <stack>
  19. #include <random>
  20.  
  21. #define pb push_back
  22. #define ll long long
  23. #define ld long double
  24. #define all(a) a.begin(), a.end()
  25. #define sz(a) (int)a.size()
  26.  
  27. using namespace std;
  28.  
  29. //tg: @galebickosikasa
  30.  
  31. const int maxn = (int)3e5;
  32. const int inf = (int)2e9;
  33. const ld eps = 1e-9;
  34. //mt19937 SuperRandom;
  35.  
  36. struct Segment{
  37. ld l, r, t;
  38.  
  39. bool operator < (const Segment& other) const {
  40. ld m1 = (l + r) / 2, m2 = (other.l + other.r) / 2;
  41. return m1 < m2;
  42. }
  43.  
  44. };
  45.  
  46. int kek(const vector<Segment>& goo){
  47. ld l = 0, m_prev = -1;
  48. for (auto& x: goo){
  49. if (m_prev != -1){
  50. ld m = (x.l + x.r) / 2;
  51. if (m_prev == m) return 0;
  52. m_prev = m;
  53. } else{
  54. m_prev = (x.l + x.r) / 2;
  55. }
  56. ld l_tmp = max(l, x.l);
  57. if (l_tmp + x.t > x.r) return 0;
  58. l = l_tmp + x.t;
  59. }
  60. return 1;
  61. }
  62.  
  63. istream& operator >> (istream& in, Segment& s){
  64. in >> s.l >> s.r >> s.t;
  65. return in;
  66. }
  67.  
  68. int main(){
  69. ios_base::sync_with_stdio(false);
  70. cout.tie(nullptr);
  71. cin.tie(nullptr);
  72. int q;
  73. cin >> q;
  74. for (int i = 0; i < q; ++i){
  75. int n;
  76. cin >> n;
  77. vector<Segment> goo(n);
  78. for (auto& x: goo) cin >> x;
  79. sort(all(goo));
  80. cout << kek(goo) << '\n';
  81. }
  82.  
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement