216692026-01-13 17:56:37PappMatyasZenehallgatáscpp17Időlimit túllépés 15/50300ms1380 KiB
#include <iostream>
#include <vector>

using namespace std;

static int Find(vector<int> v, int q)
{
	int s = 0;
	int e = v.size();
	int pos = v.size() / 2;
	while (v[pos - 1] >= q || v[pos] < q)
	{
		int n = (s + e) / 2;
		if (v[n] >= q)
		{
			e = n;
		}
		else
		{
			s = n;
		}
		pos = (s + e) / 2;
		if (pos == 0 || pos == v.size() - 1)
		{
			break;
		}
	}
	return pos;
}

int main()
{
	int n, m, total = 0;
	cin >> n >> m;
	vector<int> v(n);
	for (int i = 0; i < n; i++)
	{
		cin >> v[i];
		total += v[i];
		if (i != 0)
		{
			v[i] += v[i - 1];
		}
	}
	for (int i = 0; i < m; i++)
	{
		int x;
		cin >> x;
		x = x % total;
		if (x == 0)
		{
			x = total;
		}
		int j = Find(v, x);
		cout << j + 1 << " ";
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base15/50
1Elfogadva0/01ms316 KiB
2Időlimit túllépés0/0289ms1188 KiB
3Elfogadva2/24ms500 KiB
4Elfogadva2/23ms324 KiB
5Elfogadva2/23ms360 KiB
6Elfogadva3/33ms316 KiB
7Elfogadva3/33ms508 KiB
8Elfogadva3/33ms404 KiB
9Időlimit túllépés0/2300ms1200 KiB
10Időlimit túllépés0/2300ms1204 KiB
11Időlimit túllépés0/2300ms1180 KiB
12Időlimit túllépés0/2286ms1196 KiB
13Időlimit túllépés0/2277ms1176 KiB
14Időlimit túllépés0/2277ms1196 KiB
15Időlimit túllépés0/2300ms1196 KiB
16Időlimit túllépés0/2291ms1196 KiB
17Időlimit túllépés0/2284ms1180 KiB
18Időlimit túllépés0/2284ms1180 KiB
19Időlimit túllépés0/2300ms1192 KiB
20Időlimit túllépés0/2291ms1192 KiB
21Időlimit túllépés0/2282ms1196 KiB
22Időlimit túllépés0/3284ms1188 KiB
23Időlimit túllépés0/3300ms1204 KiB
24Időlimit túllépés0/3291ms1380 KiB