Submission #303045

#TimeUsernameProblemLanguageResultExecution timeMemory
303045Kenzo_1114Sure Bet (CEOI17_sure)C++17
100 / 100
73 ms1912 KiB
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 100010;

int n;
double a[MAXN], b[MAXN];
double ans = 0.0000, sa = 0.0000, sb = 0.0000;

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

	for(int i = 0; i < n; i++)
		scanf("%lf %lf", &a[i], &b[i]);

	sort(a, a + n);	reverse(a, a + n);	
	sort(b, b + n);	reverse(b, b + n);

	int ida = 0, idb = 0;
	for(int i = 0; i < 2 * n; i++)
	{
		if(sa >= sb && idb < n)		sb += b[idb], idb++;
		else if(sa < sb && ida < n)	sa += a[ida], ida++;

		ans = max(ans, min(sa, sb) - i - 1);
	}

	printf("%.4lf\n", (double) ans);
}

/*
	
4
1.4 3.7
1.2 2
1.6 1.4 
1.9 1.5

*/

Compilation message (stderr)

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