732 2022. 01. 01 10:28:26 kismartong Zenehallgatás cpp14 Elfogadva 50/50 115ms 27500 KiB
#include <bits/stdc++.h>
using namespace std;

void ps(vector<int> arr, int psa[], int n) {
	psa[0] = arr[0];
	for (int i = 1; i < n; i++)
		psa[i] = psa[i-1] + arr[i];
}

int bs(int arr[], int l, int r, int x) {
	while (l <= r) {
		int m = l + (r-l) / 2;
		if (arr[m] == x)
			return m;
		if (arr[m] > x && arr[m-1] < x)
			return m;
		if (arr[m] < x)
			l = m + 1;
		else
			r = m - 1;
	}
	return -1;
}

int main() {
	int n, k, t;
	cin >> n >> k;
	vector<int> idok;
	vector<int> kerd;
	for (int i = 0; i < n; i++) {
		cin >> t;
		idok.push_back(t);
	}
	for (int i = 0; i < k; i++) {
		cin >> t;
		kerd.push_back(t);
	}
	int *psa = new int[n];
	ps(idok, psa, n);
	for (int i = 0; i < k; i++) {
		cout << bs(psa, 0, n-1, kerd[i] % psa[n-1])+1 << " ";
	}
	cout << '\n';
}

Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 2ms 1908 KiB
2 Elfogadva 0/0 101ms 6664 KiB
3 Elfogadva 2/2 3ms 3492 KiB
4 Elfogadva 2/2 2ms 3500 KiB
5 Elfogadva 2/2 2ms 3516 KiB
6 Elfogadva 3/3 2ms 3532 KiB
7 Elfogadva 3/3 3ms 3548 KiB
8 Elfogadva 3/3 2ms 3564 KiB
9 Elfogadva 2/2 98ms 8184 KiB
10 Elfogadva 2/2 104ms 9632 KiB
11 Elfogadva 2/2 98ms 11060 KiB
12 Elfogadva 2/2 101ms 12492 KiB
13 Elfogadva 2/2 104ms 13848 KiB
14 Elfogadva 2/2 115ms 15120 KiB
15 Elfogadva 2/2 92ms 16456 KiB
16 Elfogadva 2/2 92ms 17860 KiB
17 Elfogadva 2/2 96ms 19124 KiB
18 Elfogadva 2/2 92ms 20432 KiB
19 Elfogadva 2/2 90ms 21684 KiB
20 Elfogadva 2/2 89ms 22816 KiB
21 Elfogadva 2/2 86ms 23992 KiB
22 Elfogadva 3/3 89ms 25168 KiB
23 Elfogadva 3/3 86ms 26340 KiB
24 Elfogadva 3/3 90ms 27500 KiB