Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.83 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define pb push_back
  4. #define mp make_pair
  5. #define ll long long
  6. #define ld long double
  7.  
  8. ll INF = 999999999999;
  9. ld EPS = 0.0000000001;
  10.  
  11. #pragma GCC optimize("O3")
  12. #pragma G++ optimize("O3")
  13. #define ull unsigned long long
  14. #define ABS(x) ((x)<0?-(x):(x))
  15. #define finds(v,x) (v.find(x) != v.end())
  16. #define to18 << fixed << setprecision(18) <<
  17. #define DB(x) cout<<"\n"<<#x<<" = "<<(x)<<"\n";
  18. #pragma comment(linker, "/STACK:1024000000,1024000000")
  19. #define FastIO ios_base::sync_with_stdio(false); cin.tie(0)
  20. ll gcd(ll a, ll b) {
  21. if (a == 0)return b;if (b == 0)return a;if (a == 1 || b == 1)return 1;if (a == b)return a;
  22. if (a>b)return gcd(b, a%b);else return gcd(a, b%a);
  23. }ll pow(ll a, ll n) {
  24. ll*s = new ll[n];s[0] = a;for (ll i = 1;i<n;
  25. ++i) {
  26. s[i] = s[i - 1] * a;
  27. }return s[n - 1];
  28. }ll lcm(ll a, ll b) { ll temp = gcd(a, b);return temp ? (a / temp*b) : 0; }ll countNumbers(ll a)
  29. {
  30. ll c = 0;ll v = a;while (v) { v /= 10;c++; }return c;
  31. }bool isprime(ll a) { for (ll i = 2; i <= sqrt(a);++i) { if (a%i == 0) { return false; } }return true; }
  32. //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  33.  
  34. const ll maxN = 100007;
  35.  
  36. ll n, m;
  37.  
  38. ll apr[200000], asu[200000], bpr[200000], bsu[200000];
  39. ll a[200000], b[200000];
  40. int main()
  41. {
  42. cin >> n;
  43. for (ll i = 0; i < n; ++i)
  44. {
  45. if (i)
  46. {
  47. apr[i] = apr[i - 1];
  48. }
  49. cin >> a[i];
  50. if (a[i] == 0)
  51. apr[i]++;
  52. }
  53. cin >> m;
  54. for (ll i = 0; i < m; ++i)
  55. {
  56. if (i)
  57. {
  58. bpr[i] = bpr[i - 1];
  59. }
  60. cin >> b[i];
  61. if (b[i] == 0)
  62. bpr[i]++;
  63. }
  64.  
  65. for (ll i = n - 1; i >= 0; --i)
  66. {
  67. if (i != n - 1)
  68. {
  69. asu[i] = asu[i + 1];
  70. }
  71. if (a[i] == 1)
  72. asu[i]++;
  73. }
  74.  
  75. for (ll i = m - 1; i >= 0; --i)
  76. {
  77. if (i != m - 1)
  78. {
  79. bsu[i] = bsu[i + 1];
  80. }
  81. if (b[i] == 1)
  82. bsu[i]++;
  83. }
  84.  
  85. pair<ll, ll> s1, s2;
  86. /*
  87.  
  88. for (ll i = 0; i < n; ++i)
  89. {
  90. if (asu[i] + apr[i] > s1.first + s1.second)
  91. {
  92. s1.first = asu[i];
  93. s1.second = apr[i];
  94. }
  95. }
  96. for (ll i = 0; i < m; ++i)
  97. {
  98. if (bsu[i] + bpr[i] > s2.first + s2.second)
  99. {
  100. s2.first = bsu[i];
  101. s2.second = bpr[i];
  102. }
  103. }
  104. */
  105.  
  106. for (ll i = 0; i < n; ++i)
  107. {
  108. if (asu[i] + apr[i] > s1.first + s1.second)
  109. {
  110. s1.first = asu[i];
  111. s1.second = apr[i];
  112. }
  113. }
  114.  
  115. for (ll i = 0; i < m; ++i)
  116. {
  117. if (bsu[i] + bpr[i] > s2.first + s2.second)
  118. {
  119. s2.first = bsu[i];
  120. s2.second = bpr[i];
  121. }
  122. if (bsu[i] == s1.first && bpr[i] == s1.second)
  123. {
  124. cout << bsu[i] + bpr[i];
  125. return 0;
  126. }
  127. }
  128.  
  129. for (ll i = 0; i < n; ++i)
  130. {
  131. if (asu[i] == s2.first && apr[i] == s2.second)
  132. {
  133. cout << asu[i] + apr[i];
  134. return 0;
  135. }
  136. }
  137.  
  138. cout << min(s1.first, s2.first) + min(s1.second, s2.second);
  139.  
  140. return 0;
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement