55082023-07-04 17:58:13AndrosGladiátorok (40 pont)cpp17Wrong answer 12/40153ms30960 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#define ll long long
using namespace std;

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

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

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

	//ennek kelleni fog az ll
	vector<ll> hozott_ero(n);//az ero, amit az eddig legyozott gladiatorokbol szerzunk.
	ll sum = 0;
	for (int 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 (int i = 0; i < n; i++)
	{
		kello_ero[i] = szenator[i].first - hozott_ero[i];
	}

	for (int 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.
		int index = it - kello_ero.begin();
		cout << index << " ";
	}
}
SubtaskSumTestVerdictTimeMemory
base12/40
1Accepted0/03ms1840 KiB
2Accepted0/029ms3764 KiB
3Accepted2/23ms2468 KiB
4Accepted2/23ms2712 KiB
5Accepted2/26ms2964 KiB
6Wrong answer0/26ms3148 KiB
7Accepted2/26ms3452 KiB
8Wrong answer0/26ms3584 KiB
9Accepted2/27ms3872 KiB
10Accepted2/27ms3916 KiB
11Wrong answer0/224ms5128 KiB
12Wrong answer0/2118ms11372 KiB
13Wrong answer0/2101ms10828 KiB
14Wrong answer0/2152ms15936 KiB
15Wrong answer0/2151ms18476 KiB
16Wrong answer0/2153ms20752 KiB
17Wrong answer0/2152ms23360 KiB
18Wrong answer0/2114ms25004 KiB
19Wrong answer0/2114ms26320 KiB
20Wrong answer0/2115ms27692 KiB
21Wrong answer0/2118ms29360 KiB
22Wrong answer0/2118ms30960 KiB