Submission #328743

#TimeUsernameProblemLanguageResultExecution timeMemory
328743luciocfHiring (IOI09_hiring)C++14
49 / 100
314 ms11756 KiB
#include <bits/stdc++.h>

#define ff first
#define ss second

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;

const int maxn = 5e5+10;

int n;
ll w;

pii a[maxn];

bool comp(pii a, pii b)
{
	return 1ll*a.ff*b.ss < 1ll*b.ff*a.ss;
}

int main(void)
{
	scanf("%d %lld", &n, &w);

	for (int i = 1; i <= n; i++)
		scanf("%d %d", &a[i].ff, &a[i].ss);

	sort(a+1, a+n+1, comp);

	int ans = 0;

	priority_queue<ll> fila;
	ll soma = 0;

	for (int i = 1; i <= n && a[i].ff <= w; i++)
	{
		soma += 1ll*a[i].ss;
		fila.push(a[i].ss);

		while (1ll*a[i].ff*soma > 1ll*w*a[i].ss)
		{
			soma -= 1ll*fila.top();
			fila.pop();
		}

		ans = max(ans, (int)fila.size());
	}

	printf("%d\n", ans);

	for (int i = 1; i <= ans; i++)
		printf("1\n");
}

Compilation message (stderr)

hiring.cpp: In function 'int main()':
hiring.cpp:25:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   25 |  scanf("%d %lld", &n, &w);
      |  ~~~~~^~~~~~~~~~~~~~~~~~~
hiring.cpp:28:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   28 |   scanf("%d %d", &a[i].ff, &a[i].ss);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...