Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define pb push_back
- #define mp make_pair
- #define ll long long
- #define ld long double
- ll INF = 999999999999;
- ld EPS = 0.0000000001;
- #pragma GCC optimize("O3")
- #pragma G++ optimize("O3")
- #define ull unsigned long long
- #define ABS(x) ((x)<0?-(x):(x))
- #define finds(v,x) (v.find(x) != v.end())
- #define to18 << fixed << setprecision(18) <<
- #define DB(x) cout<<"\n"<<#x<<" = "<<(x)<<"\n";
- #pragma comment(linker, "/STACK:1024000000,1024000000")
- #define FastIO ios_base::sync_with_stdio(false); cin.tie(0)
- ll gcd(ll a, ll b) {
- if (a == 0)return b;if (b == 0)return a;if (a == 1 || b == 1)return 1;if (a == b)return a;
- if (a>b)return gcd(b, a%b);else return gcd(a, b%a);
- }ll pow(ll a, ll n) {
- ll*s = new ll[n];s[0] = a;for (ll i = 1;i<n;
- ++i) {
- s[i] = s[i - 1] * a;
- }return s[n - 1];
- }ll lcm(ll a, ll b) { ll temp = gcd(a, b);return temp ? (a / temp*b) : 0; }ll countNumbers(ll a)
- {
- ll c = 0;ll v = a;while (v) { v /= 10;c++; }return c;
- }bool isprime(ll a) { for (ll i = 2; i <= sqrt(a);++i) { if (a%i == 0) { return false; } }return true; }
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- const ll maxN = 100007;
- ll n, m;
- ll apr[200000], asu[200000], bpr[200000], bsu[200000];
- ll a[200000], b[200000];
- int main()
- {
- cin >> n;
- for (ll i = 0; i < n; ++i)
- {
- if (i)
- {
- apr[i] = apr[i - 1];
- }
- cin >> a[i];
- if (a[i] == 0)
- apr[i]++;
- }
- cin >> m;
- for (ll i = 0; i < m; ++i)
- {
- if (i)
- {
- bpr[i] = bpr[i - 1];
- }
- cin >> b[i];
- if (b[i] == 0)
- bpr[i]++;
- }
- for (ll i = n - 1; i >= 0; --i)
- {
- if (i != n - 1)
- {
- asu[i] = asu[i + 1];
- }
- if (a[i] == 1)
- asu[i]++;
- }
- for (ll i = m - 1; i >= 0; --i)
- {
- if (i != m - 1)
- {
- bsu[i] = bsu[i + 1];
- }
- if (b[i] == 1)
- bsu[i]++;
- }
- pair<ll, ll> s1, s2;
- /*
- for (ll i = 0; i < n; ++i)
- {
- if (asu[i] + apr[i] > s1.first + s1.second)
- {
- s1.first = asu[i];
- s1.second = apr[i];
- }
- }
- for (ll i = 0; i < m; ++i)
- {
- if (bsu[i] + bpr[i] > s2.first + s2.second)
- {
- s2.first = bsu[i];
- s2.second = bpr[i];
- }
- }
- */
- for (ll i = 0; i < n; ++i)
- {
- if (asu[i] + apr[i] > s1.first + s1.second)
- {
- s1.first = asu[i];
- s1.second = apr[i];
- }
- }
- for (ll i = 0; i < m; ++i)
- {
- if (bsu[i] + bpr[i] > s2.first + s2.second)
- {
- s2.first = bsu[i];
- s2.second = bpr[i];
- }
- if (bsu[i] == s1.first && bpr[i] == s1.second)
- {
- cout << bsu[i] + bpr[i];
- return 0;
- }
- }
- for (ll i = 0; i < n; ++i)
- {
- if (asu[i] == s2.first && apr[i] == s2.second)
- {
- cout << asu[i] + apr[i];
- return 0;
- }
- }
- cout << min(s1.first, s2.first) + min(s1.second, s2.second);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement