59852023-10-10 23:06:03AndrosVállalkozócpp17Accepted 40/4026ms4268 KiB
#include <iostream>
#include <algorithm>

using namespace std;

//egy-egy napon mennyi munkát tud megoldani
int kapacitas[10005];
int feladatok[10005];

int main() {
	int napdb, rendelesdb;
	cin >> napdb >> rendelesdb;
	//1..=napdb
	for (int i = 1; i <= napdb; i++)
	{
		cin >> kapacitas[i];
	}
	for (int i = 0; i < rendelesdb; i++)
	{
		int melyik_nap;
		cin >> melyik_nap;
		feladatok[melyik_nap]++;
	}

	//int munkak = 0;

	//for (int i = 0; i <= napdb; i++)
	//{
	//	munkak += feladatok[i];
	//}
	//cout << munkak;
	
	int sol = 0;

	int munkaorak = 0;
	int elvegzettek = 0;
	for (int i = 1; i <= napdb; i++)
	{
		munkaorak += kapacitas[i];//feltételezzük, hogy mindig dolgozik
		//cout <<i<< " munkaorak: " << munkaorak << "\tfeladatok: " << feladatok[i];
		//ennyit dolgozott összesen eddig
		if (munkaorak >= feladatok[i]) {//Többet dolgozott, mint amennyi lejárna
			munkaorak -= feladatok[i];//A dolgozottakból levonom a határidősöket
			sol += feladatok[i];//És elvégezte az összes aznapi feladatot
		}
		else
		{
			sol += munkaorak;//A maradékot ledolgozza
			munkaorak = 0;//Nem marad már munkaórája, mert mindent megpróbált megcsinálni
		}
		//cout << "\tsol: " << sol << endl;

	}

	cout << sol;

	return 0;
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/03ms1880 KiB
2Accepted0/026ms2080 KiB
3Accepted2/22ms2304 KiB
4Accepted2/22ms2372 KiB
5Accepted2/22ms2608 KiB
6Accepted2/23ms2584 KiB
7Accepted2/24ms2712 KiB
8Accepted2/23ms2924 KiB
9Accepted2/24ms3012 KiB
10Accepted2/23ms3136 KiB
11Accepted2/23ms3272 KiB
12Accepted2/23ms3472 KiB
13Accepted2/24ms3560 KiB
14Accepted2/24ms3556 KiB
15Accepted2/28ms3680 KiB
16Accepted2/28ms3792 KiB
17Accepted2/214ms3828 KiB
18Accepted2/210ms3856 KiB
19Accepted2/213ms4108 KiB
20Accepted2/214ms4164 KiB
21Accepted2/218ms4268 KiB
22Accepted2/226ms4252 KiB