87022024-01-25 20:23:58szilFurcsa műveletcpp17Elfogadva 100/100828ms288824 KiB
#include <bits/stdc++.h>

using namespace std;

using ll = long long;

const int MAXN = 200'001;

int a[MAXN], b[MAXN], tree[2*MAXN], n;

void upd(int u) {
    tree[u += n]++;
    for (u /= 2; u >= 1; u /= 2) {
        tree[u] = tree[2*u] + tree[2*u+1];
    }
}

int qry(int l, int r) {
    l += n; r += n;
    int ans = 0;
    while (l <= r) {
        if (l % 2 == 1) ans += tree[l++];
        if (r % 2 == 0) ans += tree[r--];
        l /= 2; r /= 2;
    }
    return ans;
}

int main(){
    cin.tie(0); cin.sync_with_stdio(0);
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> a[i];
    for (int i = 1; i <= n; i++) cin >> b[i];

    if (a[1] != b[1] || a[n] != b[n]) {
        cout << "-1\n";
    } else {
        map<int, queue<int>> x;
        for (int i = 2; i <= n; i++) {
            int s = b[i-1] + b[i];
            if (i & 1) s *= -1;
            x[s].push(i);
        }
        ll ans = 0;
        for (int i = 2; i <= n; i++) {
            int s = a[i-1] + a[i];
            if (i & 1) s *= -1;
            if (x[s].empty()) {
                cout << "-1\n";
                return 0;
            }
            upd(x[s].front());
            ans += qry(x[s].front()+1, n);
            x[s].pop();
        }
        cout << ans << "\n";
    }
    return 0;
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1844 KiB
2Elfogadva3ms2180 KiB
subtask214/14
3Elfogadva78ms9812 KiB
4Elfogadva74ms9808 KiB
5Elfogadva71ms10052 KiB
6Elfogadva82ms10156 KiB
7Elfogadva82ms10488 KiB
8Elfogadva85ms10464 KiB
9Elfogadva3ms3132 KiB
10Elfogadva3ms3244 KiB
11Elfogadva3ms3352 KiB
12Elfogadva3ms3208 KiB
13Elfogadva2ms3264 KiB
subtask318/18
14Elfogadva3ms3524 KiB
15Elfogadva3ms3384 KiB
16Elfogadva2ms3532 KiB
17Elfogadva2ms3388 KiB
18Elfogadva2ms3388 KiB
19Elfogadva3ms3704 KiB
20Elfogadva2ms3716 KiB
subtask450/50
21Elfogadva4ms5196 KiB
22Elfogadva4ms5196 KiB
23Elfogadva4ms5212 KiB
24Elfogadva4ms5304 KiB
25Elfogadva4ms5392 KiB
26Elfogadva3ms3896 KiB
27Elfogadva3ms3788 KiB
subtask518/18
28Elfogadva683ms288488 KiB
29Elfogadva736ms288248 KiB
30Elfogadva785ms288444 KiB
31Elfogadva828ms288716 KiB
32Elfogadva671ms288824 KiB
33Elfogadva648ms288736 KiB
34Elfogadva57ms7380 KiB
35Elfogadva57ms7444 KiB