Submission #14129871


Source Code Expand

/* cmd
	g++ "$F"
*/
#include <algorithm>
#include <iostream>
#include <map>
#include <vector>
using namespace std;

int main()
{
// Inputs
	int N;
	cin >> N;

	vector<vector<int>> Shelves(N);
	for (int i = 0; i < N; ++i) {
		int k;
		cin >> k;
		Shelves[i].resize(k);
		for (int j = 0; j < k; ++j) {
			cin >> Shelves[i][j];
		}
		swap_ranges(Shelves[i].begin(), Shelves[i].begin()+k/2,
		            Shelves[i].rbegin()
		);
	}

	int M;
	cin >> M;

	vector<int> A(M);
	for (int i = 0; i < M; ++i) {
		cin >> A[i];
	}

// Prepare
	map<int,int> Firsts, Seconds;
	for (int i = 0; i < N; ++i) {
		Firsts.emplace(Shelves[i].back(), i);
		if (1 < Shelves[i].size()) {
			Seconds.emplace(Shelves[i].rbegin()[1], i);
		}
	}

// Run
	for (int a: A) {
		auto& fs = (a==1 || Seconds.empty() || Firsts.rbegin()->first > Seconds.rbegin()->first) ? Firsts : Seconds;
		const int due = fs.rbegin()->first;
		const int shelfNo = fs.rbegin()->second;
		auto& shelf = Shelves[shelfNo];

		cout << due << endl;

		fs.erase(--fs.end());
		shelf.erase(shelf.end()-1-(&fs==&Seconds));
		if (&fs == &Firsts) {
			if (! shelf.empty()) {
				Firsts.emplace(shelf.back(), shelfNo);
				Seconds.erase(shelf.back());
			}
		}
		if (1 < shelf.size()) {
			Seconds.emplace(shelf.rbegin()[1], shelfNo);
		}
	}

	return 0;
}

Submission Info

Submission Time
Task L - Supamarket
User ds14050
Language C++ (GCC 9.2.1)
Score 6
Code Size 1363 Byte
Status AC
Exec Time 778 ms
Memory 17904 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 6 / 6
Status
AC × 2
AC × 18
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All max_01.txt, max_02.txt, max_03.txt, max_04.txt, max_05.txt, max_06.txt, max_07.txt, max_08.txt, max_09.txt, max_10.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, sample_01.txt, sample_02.txt
Case Name Status Exec Time Memory
max_01.txt AC 774 ms 17904 KiB
max_02.txt AC 778 ms 17904 KiB
max_03.txt AC 538 ms 5704 KiB
max_04.txt AC 540 ms 5716 KiB
max_05.txt AC 537 ms 5644 KiB
max_06.txt AC 560 ms 5724 KiB
max_07.txt AC 552 ms 5724 KiB
max_08.txt AC 596 ms 6376 KiB
max_09.txt AC 603 ms 6876 KiB
max_10.txt AC 625 ms 8404 KiB
random_01.txt AC 147 ms 3560 KiB
random_02.txt AC 150 ms 4716 KiB
random_03.txt AC 147 ms 12932 KiB
random_04.txt AC 81 ms 4656 KiB
random_05.txt AC 63 ms 9360 KiB
random_06.txt AC 78 ms 4716 KiB
sample_01.txt AC 3 ms 3472 KiB
sample_02.txt AC 2 ms 3540 KiB