183 2021. 02. 03 22:24:18 Babják Péter Zenehallgatás cpp11 Időlimit túllépés 44/50 298ms 4780 KiB
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

struct time_ {
	int second;
	int index;
	int song;
};
int read() {
	int result = 0;
	char ch;
	ch = getchar();
	result = ch-48;
	ch = getchar();
	while (ch >32) {
		result = (result<<1) + (result<<3)+ (ch - 48);
		ch = getchar();
	}
		return result;
}
int main() {
	ios_base::sync_with_stdio(false);cout.tie(NULL);
	int N, K;
	N=read();K=read();
	vector<int> songS(N);
	int full_time = 0;
	for (auto& e : songS) {
		e=read();
		full_time += e;
	}
	vector<time_> timeS(K);
	for (int i = 0; i < K; i++) {
		timeS[i].second=read();
		timeS[i].index = i;
	}
	sort(timeS.begin(), timeS.end(), [](time_ a, time_ b) {
		return a.second < b.second;
	});
	int song = 0;
	long long length = songS[0];
	for (auto& e : timeS) {
		while (e.second > length) {
			song = (song == N - 1 ? 0 : song + 1);
			length += songS[song];
		}
		e.song = song + 1;
	}
	sort(timeS.begin(), timeS.end(), [](time_ a, time_ b) {
		return a.index < b.index;
	});
	for (auto e : timeS) {
		cout << e.song << " ";
	}
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 44/50
1 Elfogadva 0/0 2ms 1756 KiB
2 Elfogadva 0/0 37ms 4776 KiB
3 Elfogadva 2/2 2ms 1860 KiB
4 Elfogadva 2/2 2ms 1860 KiB
5 Elfogadva 2/2 3ms 1864 KiB
6 Elfogadva 3/3 16ms 1864 KiB
7 Elfogadva 3/3 29ms 1864 KiB
8 Elfogadva 3/3 138ms 1892 KiB
9 Elfogadva 2/2 39ms 4772 KiB
10 Elfogadva 2/2 39ms 4776 KiB
11 Elfogadva 2/2 37ms 4760 KiB
12 Elfogadva 2/2 39ms 4772 KiB
13 Elfogadva 2/2 37ms 4768 KiB
14 Elfogadva 2/2 39ms 4776 KiB
15 Elfogadva 2/2 41ms 4768 KiB
16 Elfogadva 2/2 41ms 4780 KiB
17 Elfogadva 2/2 45ms 4772 KiB
18 Elfogadva 2/2 48ms 4780 KiB
19 Elfogadva 2/2 48ms 4776 KiB
20 Elfogadva 2/2 165ms 4776 KiB
21 Elfogadva 2/2 160ms 4768 KiB
22 Elfogadva 3/3 162ms 4772 KiB
23 Időlimit túllépés 0/3 298ms 2636 KiB
24 Időlimit túllépés 0/3 291ms 2512 KiB