Advertisement
Dennnhhhickk

Untitled

Oct 1st, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define mp make_pair
  4.  
  5. using namespace std;
  6.  
  7. typedef long long ll;
  8. typedef unsigned long long ull;
  9. typedef long double ld;
  10. typedef ld typ;
  11. typedef string str;
  12.  
  13. struct point
  14. {
  15. ld x, y;
  16. };
  17.  
  18. struct vec
  19. {
  20. ld a, b;
  21. };
  22.  
  23. struct line
  24. {
  25. ld a, b, c;
  26. };
  27.  
  28. istream& operator>> ( istream& in, point& p)
  29. {
  30. in >> p.x >> p.y;
  31. return in;
  32. }
  33.  
  34. ostream& operator<<(ostream& out, point& p)
  35. {
  36. out << p.x << ' ' << p.y;
  37. return out;
  38. }
  39.  
  40. void build(ll, ll, ll);
  41. ll _max(ll, ll, ll, ll, ll);
  42. void update(ll, ll, ll, ll, ll, ll);
  43. typ sqr(typ);
  44. void start();
  45. void extended(int);
  46. point n_point(point, point);
  47. vec mv(point, point);
  48. line ml(point, point);
  49. typ croos(vec, vec);
  50. typ skalar(vec, vec);
  51.  
  52. int a[100000], d[400000], updateb[400000];
  53.  
  54. ll check(str s)
  55. {
  56. ll sum = 0, p = 1;
  57. for (int i = s.size() - 1; i >= 0; i--)
  58. {
  59. if (s[i] == '1')
  60. sum += p;
  61. p *= 2;
  62. }
  63. return sum;
  64. }
  65.  
  66. char out(ll s)
  67. {
  68. if (s <= 9)
  69. return (char)(s + '0');
  70. if (s == 10)
  71. return 'A';
  72. if (s == 11)
  73. return 'B';
  74. if (s == 12)
  75. return 'C';
  76. if (s == 13)
  77. return 'D';
  78. if (s == 14)
  79. return 'R';
  80. if (s == 15)
  81. return 'F';
  82. }
  83.  
  84. int main()
  85. {
  86. start();
  87. ll n;
  88. cin >> n;
  89. for (int j = 0; j < n; j++)
  90. {
  91. str s, a;
  92. cin >> s;
  93. if (s.size() % 4)
  94. a = s.substr(0, s.size() % 4);
  95. cout << out(check(a));
  96. for (int i = s.size() % 4; i < s.size(); i+= 4)
  97. {
  98. a = s.substr(i, 4);
  99. cout << out(check(a));
  100. }
  101. cout << endl;
  102. }
  103. return 0;
  104. }
  105.  
  106. void build(ll v, ll tl, ll tr)
  107. {
  108. if (tl == tr)
  109. d[v] = a[tl];
  110. else
  111. {
  112. ll tm = (tl + tr) / 2;
  113. build(v * 2, tl, tm);
  114. build(v * 2 + 1, tm + 1, tr);
  115. d[v] = max(d[v * 2], d[v * 2 + 1]);
  116. }
  117. }
  118.  
  119. ll _max(ll v, ll tl, ll tr, ll l, ll r)
  120. {
  121. if (l > r)
  122. return 0;
  123. if (tl == l && tr == r)
  124. return d[v] + updateb[v];
  125. ll tm = (tl + tr) / 2;
  126. return max(_max(v * 2, tl, tm, l, min(r, tm)), _max(v * 2 + 1, tm + 1, tr, max(l, tm + 1), r)) + updateb[v];
  127. }
  128.  
  129. void update(ll v, ll tl, ll tr, ll l, ll r, ll s)
  130. {
  131. if (l > r)
  132. return;
  133. if (tl == l && tr == r)
  134. {
  135. updateb[v] += s;
  136. return;
  137. }
  138. ll tm = (tl + tr) / 2;
  139. update(v * 2, tl, tm, l, min(r, tm), s);
  140. update(v * 2 + 1, tm + 1, tr, max(l, tm + 1), r, s);
  141. }
  142.  
  143. ld sqr(ld a)
  144. {
  145. return a * a;
  146. }
  147.  
  148. void start()
  149. {
  150. ios::sync_with_stdio(0);
  151. cin.tie(0);
  152. cout.tie(0);
  153. }
  154.  
  155. void extended(int n)
  156. {
  157. cout << setprecision(n) << fixed;
  158. }
  159.  
  160. point n_point(point a, point b)
  161. {
  162. point n;
  163. n.x = a.x;
  164. n.y = b.y;
  165. return n;
  166. }
  167.  
  168. vec mv(point st, point fn)
  169. {
  170. vec v;
  171. v.a = fn.x - st.x;
  172. v.b = fn.y - st.y;
  173. return v;
  174. }
  175.  
  176. line ml(point a, point b)
  177. {
  178. line l;
  179. l.a = b.y - a.y;
  180. l.b = a.x - b.x;
  181. l.c = -l.a * a.x - l.b * a.y;
  182. return l;
  183. }
  184.  
  185. typ skalar(vec a, vec b)
  186. {
  187. return a.a * b.a + a.b * b.b;
  188. }
  189.  
  190. typ cross(vec a, vec b)
  191. {
  192. return a.a * b.b - a.b * b.a;
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement