216992026-01-13 18:12:15PappMatyasZenehallgatáscpp17Time limit exceeded 15/50261ms1520 KiB
#include <iostream>
#include <vector>

using namespace std;

vector<int> v;

static int Find(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 = n;
		if (pos == 0 || pos == v.size() - 1)
		{
			break;
		}
	}
	return pos;
}

int main()
{
	int n, m, total = 0;
	cin >> n >> m;
	
	for (int i = 0; i < n; i++)
	{
		v.push_back(0);
		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(x);
		cout << j + 1 << " ";
	}
}
SubtaskSumTestVerdictTimeMemory
base15/50
1Accepted0/01ms316 KiB
2Time limit exceeded0/0259ms1456 KiB
3Accepted2/23ms316 KiB
4Accepted2/23ms316 KiB
5Accepted2/23ms316 KiB
6Accepted3/33ms332 KiB
7Accepted3/33ms500 KiB
8Accepted3/33ms316 KiB
9Time limit exceeded0/2257ms1272 KiB
10Time limit exceeded0/2256ms1484 KiB
11Time limit exceeded0/2261ms1364 KiB
12Time limit exceeded0/2250ms1448 KiB
13Time limit exceeded0/2259ms1508 KiB
14Time limit exceeded0/2252ms1448 KiB
15Time limit exceeded0/2259ms1284 KiB
16Time limit exceeded0/2246ms1452 KiB
17Time limit exceeded0/2247ms1448 KiB
18Time limit exceeded0/2257ms1272 KiB
19Time limit exceeded0/2246ms1416 KiB
20Time limit exceeded0/2245ms1452 KiB
21Time limit exceeded0/2246ms1452 KiB
22Time limit exceeded0/3252ms1520 KiB
23Time limit exceeded0/3250ms1452 KiB
24Time limit exceeded0/3224ms1360 KiB