6996 2023. 12. 25 09:35:03 MagyarKendeSZLG Zenehallgatás cpp17 Elfogadva 50/50 56ms 4196 KiB
#include <iostream>
#include <vector>
using namespace std;
#define speed cin.tie(0); ios::sync_with_stdio(0)

int N;
vector<int> v;

int search(int t) {
    int b = 1, e = N, h, cmp;
    while (b <= e) {
        h = (e - b) / 2 + b;
        cmp = v[h - 1] < t && t <= v[h] ? 0 : v[h] < t ? 1 : -1;
        if (cmp == 1) {
            b = min(h + 1, N);
        }
        else if (cmp == -1) {
            e = max(h - 1, 0);
        }
        else {
            return h;
        }
    }
    return 0;
}

int main() {
    speed;

    int K, sum;
    cin >> N >> K;
    v.resize(N + 1);
    for (int i = 1; i <= N; i++) {
        cin >> v[i];
        v[i] += v[i - 1];
    }

    while (K--) {
        int t;
        cin >> t;
        t %= v[N];
        cout << search(t) << ' ';
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1892 KiB
2 Elfogadva 0/0 56ms 2952 KiB
3 Elfogadva 2/2 3ms 2340 KiB
4 Elfogadva 2/2 3ms 2520 KiB
5 Elfogadva 2/2 3ms 2496 KiB
6 Elfogadva 3/3 3ms 2620 KiB
7 Elfogadva 3/3 3ms 2704 KiB
8 Elfogadva 3/3 3ms 2828 KiB
9 Elfogadva 2/2 54ms 3860 KiB
10 Elfogadva 2/2 56ms 3860 KiB
11 Elfogadva 2/2 56ms 4064 KiB
12 Elfogadva 2/2 56ms 4076 KiB
13 Elfogadva 2/2 54ms 4072 KiB
14 Elfogadva 2/2 54ms 4072 KiB
15 Elfogadva 2/2 54ms 4080 KiB
16 Elfogadva 2/2 54ms 4068 KiB
17 Elfogadva 2/2 54ms 4076 KiB
18 Elfogadva 2/2 54ms 4064 KiB
19 Elfogadva 2/2 54ms 4088 KiB
20 Elfogadva 2/2 52ms 4068 KiB
21 Elfogadva 2/2 52ms 4064 KiB
22 Elfogadva 3/3 52ms 4196 KiB
23 Elfogadva 3/3 52ms 4072 KiB
24 Elfogadva 3/3 52ms 4068 KiB