5985 2023. 10. 10 23:06:03 Andros Vállalkozó cpp17 Elfogadva 40/40 26ms 4268 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;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 3ms 1880 KiB
2 Elfogadva 0/0 26ms 2080 KiB
3 Elfogadva 2/2 2ms 2304 KiB
4 Elfogadva 2/2 2ms 2372 KiB
5 Elfogadva 2/2 2ms 2608 KiB
6 Elfogadva 2/2 3ms 2584 KiB
7 Elfogadva 2/2 4ms 2712 KiB
8 Elfogadva 2/2 3ms 2924 KiB
9 Elfogadva 2/2 4ms 3012 KiB
10 Elfogadva 2/2 3ms 3136 KiB
11 Elfogadva 2/2 3ms 3272 KiB
12 Elfogadva 2/2 3ms 3472 KiB
13 Elfogadva 2/2 4ms 3560 KiB
14 Elfogadva 2/2 4ms 3556 KiB
15 Elfogadva 2/2 8ms 3680 KiB
16 Elfogadva 2/2 8ms 3792 KiB
17 Elfogadva 2/2 14ms 3828 KiB
18 Elfogadva 2/2 10ms 3856 KiB
19 Elfogadva 2/2 13ms 4108 KiB
20 Elfogadva 2/2 14ms 4164 KiB
21 Elfogadva 2/2 18ms 4268 KiB
22 Elfogadva 2/2 26ms 4252 KiB