Advertisement
skimono

Lesha_Ochkun

May 26th, 2023
947
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.35 KB | None | 0 0
  1. #pragma GCC optimize("Ofast,unroll-loops")
  2. #pragma GCC target("avx,avx2,fma")
  3. #define _CRT_SECURE_NO_WARNINGS
  4.  
  5. #include <iostream>
  6. #include <vector>
  7. #include <string>
  8. #include <algorithm>
  9. #include <cmath>
  10. #include <stack>
  11. #include <iomanip>
  12. #include <fstream>
  13. #include <string>
  14. #include <set>
  15. #include <deque>
  16. #include <queue>
  17. #include <map>
  18. #include <bitset>
  19. #include <random>
  20. #include <list>
  21. #include <unordered_map>
  22. #include <unordered_set>
  23. #include <cassert>
  24.  
  25. using namespace std;
  26.  
  27. typedef long long ll;
  28. typedef unsigned long long ull;
  29. typedef long double ld;
  30. typedef string str;
  31. //typedef __int128 ultraint;
  32. #define sqrt sqrtl
  33. #define F first
  34. #define S second
  35. #define endl '\n'
  36. #define all(vc666) vc666.begin(), vc666.end()
  37. #define allr(vc666) vc666.rbegin(), vc666.rend()
  38. #define int long long
  39. #define degug(x) cerr (#x) << " " << (x) << endl;
  40.  
  41. const ll INF = (ll)1e18;
  42. const ll inf = 1e11 + 7;
  43. const ll ONE = 1;
  44. const ll mod = 1e9 + 7;
  45. const ll m1 = 1e9 + 575179;
  46. const ll m2 = 1e9 + 87;
  47. const ll k = 347;
  48. const ll LG = 19;
  49. ld EPS = 1e-12;
  50. ld PI = 3.1415926535897932384;
  51. mt19937_64 gen(rand() + rand());
  52.  
  53. int cnt(int x, int bit) {
  54.     int nw = (ONE << (bit + ONE));
  55.     int nw2 = (ONE << bit);
  56.     int cnt = (x + ONE) / nw;
  57.     x = x - cnt * nw + 1;
  58.     cnt *= nw2;
  59.     cnt += max((int)0, x - nw2);
  60.     return cnt;
  61. }
  62.  
  63. void solve() {
  64.     int q;
  65.     cin >> q;
  66.     int l, r, bit, u1, u2, zxc = 0, mx = -1, zxc2 = 0, mn = INF, i;
  67.     while (q--) {
  68.         cin >> l >> r;
  69.         mx = max(mx, r);
  70.         mn = min(mn, l);
  71.         for (bit = 0; bit < 63; bit++) {
  72.             u1 = cnt(r, bit);
  73.             u2 = cnt(l - 1, bit);
  74.             u1 -= u2;
  75.             if (u1 % 2 == 1) {
  76.                 zxc ^= (ONE << bit);
  77.             }
  78.         }
  79.     }
  80.     if (zxc == 0) {
  81.         cout << "Lose" << endl;
  82.     }
  83.     else {
  84.         cout << "Win" << endl;
  85.         for (i = mx; i >= mn; i--) {
  86.             if ((zxc xor i) <= i) {
  87.                 cout << i << " " << (zxc xor i) << endl;
  88.                 return;
  89.             }
  90.         }
  91.     }
  92. }
  93.  
  94. signed main() {
  95. #ifdef _DEBUG
  96.     freopen("input.txt", "r ", stdin);
  97.     freopen("output.txt", "w", stdout);
  98. #endif
  99.     ios_base::sync_with_stdio(0);
  100.     cin.tie(NULL);
  101.     cout.tie(NULL);
  102.     int t = 1;
  103.     //cin >> t;
  104.     while (t--) solve();
  105. }
  106. //Deisgned by skimono
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement