55092023-07-04 17:59:42AndrosGladiátorok (40 pont)cpp17Hibás válasz 12/40153ms11832 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#define ll long long
using namespace std;

//Magyarazattal

int main()
{
	//Hiba=>Mindenhol long long
	ll n, q;
	cin >> n >> q;
	//Beolvasas, a szenatorok parokba lesznek beolvasva.
	vector<pair<ll, ll>> szenator(n);
	for (ll i = 0; i < n; i++)
	{
		cin>>szenator[i].first >> szenator[i].second;
	}
	
	vector<ll> caesar(q);

	for (ll i = 0; i < q; i++)
	{
		cin>>caesar[i];
	}

	//A szortirozas az elso par szerll szortiroz.
	//A legjobb ha a leggyengebbek lesznek elol.
	sort(szenator.begin(), szenator.end());

	vector<ll> hozott_ero(n);//az ero, amit az eddig legyozott gladiatorokbol szerzunk.
	ll sum = 0;
	for (ll i = 0; i < n; i++)
	{
		hozott_ero[i] = sum;
		sum += szenator[i].second;
	}

	vector<ll> kello_ero(n);//Az ero ami az elejetol kell, hogy legyozzuk
	for (ll i = 0; i < n; i++)
	{
		kello_ero[i] = szenator[i].first - hozott_ero[i];
	}

	for (ll i = 0; i < q; i++)
	{
		//Ugy nez ki az upper bound <=-nel is OK
		//Visszaadja az elso elem helyet, ami nagyobb, mint caesar[i]
		//Ez a szamu gladiator gyozte le ot.
		auto it = upper_bound(kello_ero.begin(), kello_ero.end(), caesar[i]);
		////Kiszamoljuk a rendes indexet. Off-by-one-al nincs hiba a tesztbemenet alapjan.
		ll index = it - kello_ero.begin();
		cout << index << " ";
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base12/40
1Elfogadva0/03ms1812 KiB
2Elfogadva0/029ms4012 KiB
3Elfogadva2/23ms2228 KiB
4Elfogadva2/23ms2444 KiB
5Elfogadva2/26ms2904 KiB
6Hibás válasz0/26ms3116 KiB
7Elfogadva2/26ms3332 KiB
8Hibás válasz0/26ms3288 KiB
9Elfogadva2/27ms3524 KiB
10Elfogadva2/26ms3480 KiB
11Hibás válasz0/224ms4584 KiB
12Hibás válasz0/2116ms10564 KiB
13Hibás válasz0/2101ms8304 KiB
14Hibás válasz0/2153ms11380 KiB
15Hibás válasz0/2153ms11400 KiB
16Hibás válasz0/2153ms11512 KiB
17Hibás válasz0/2152ms11484 KiB
18Hibás válasz0/2122ms11760 KiB
19Hibás válasz0/2112ms11708 KiB
20Hibás válasz0/2112ms11560 KiB
21Hibás válasz0/2118ms11572 KiB
22Hibás válasz0/2126ms11832 KiB