53462023-04-26 10:11:23Valaki2Színes szobák (50 pont)cpp14Hibás válasz 4/5037ms25320 KiB
#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define fi first
#define se second

const int maxn = 1e5;

int n, k, q;
int color[1 + maxn + 1];
vector<pii > steps;

bool stays(int idx, bool dir) {
    for(pii s : steps) {
        if(color[idx] == s.fi) {
            idx += s.se;
        }
        if((idx > n) ^ dir) {
            return true; // wrong direction
        }
        if((idx < 1) ^ dir) {
            return false; // correct way
        }
    }
    return true; // actually stays
}

void solve() {
    cin >> n >> k >> q;
    for(int i = 1; i <= n; i++) {
        cin >> color[i];
    }
    for(int i = 1; i <= q; i++) {
        int a, b;
        cin >> a >> b;
        steps.pb(mp(a, b));
    }
    int l = 0, r = n + 1;
    while(l < r - 1) {
        int mid = (l + r) / 2;
        if(stays(mid, false)) {
            r = mid;
        } else {
            l = mid;
        }
    }
    int ans = 0;
    ans += l;
    l = 0, r = n + 1;
    while(l < r - 1) {
        int mid = (l + r) / 2;
        if(stays(mid, true)) {
            l = mid;
        } else {
            r = mid;
        }
    }
    ans += n - l;
    cout << ans << "\n";
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    solve();
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base4/50
1Elfogadva0/03ms1892 KiB
2Hibás válasz0/037ms6340 KiB
3Hibás válasz0/13ms3776 KiB
4Elfogadva1/13ms3736 KiB
5Hibás válasz0/13ms3740 KiB
6Elfogadva1/13ms4008 KiB
7Hibás válasz0/13ms4252 KiB
8Elfogadva1/13ms4484 KiB
9Hibás válasz0/13ms4724 KiB
10Elfogadva1/13ms5068 KiB
11Hibás válasz0/13ms5204 KiB
12Hibás válasz0/13ms5216 KiB
13Hibás válasz0/14ms5600 KiB
14Hibás válasz0/14ms5588 KiB
15Hibás válasz0/14ms5872 KiB
16Hibás válasz0/14ms6240 KiB
17Hibás válasz0/16ms6404 KiB
18Hibás válasz0/16ms6664 KiB
19Hibás válasz0/121ms9136 KiB
20Hibás válasz0/135ms11064 KiB
21Hibás válasz0/126ms11344 KiB
22Hibás válasz0/128ms13248 KiB
23Hibás válasz0/134ms14608 KiB
24Hibás válasz0/135ms15716 KiB
25Hibás válasz0/135ms16904 KiB
26Hibás válasz0/135ms18060 KiB
27Hibás válasz0/335ms19096 KiB
28Hibás válasz0/335ms20100 KiB
29Hibás válasz0/335ms21104 KiB
30Hibás válasz0/335ms22300 KiB
31Hibás válasz0/334ms23552 KiB
32Hibás válasz0/335ms24516 KiB
33Hibás válasz0/417ms23652 KiB
34Hibás válasz0/429ms25320 KiB