Submission #938372

# Submission time Handle Problem Language Result Execution time Memory
938372 2024-03-05T05:16:03 Z vjudge1 Sure Bet (CEOI17_sure) C++17
100 / 100
90 ms 15832 KB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
//using namespace __gnu_pbds;
 
bool YES(bool f){ if(f) cout << "Yes\n" ; else cout << "No\n" ; return f ; }
void YES(){YES(1);}
void NO(){YES(0);}
void fopn(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);}
//#define ordered_set tree<int, null_type,less_equal<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ios ios_base::sync_with_stdio(0) ; cin.tie(0) ; cout.tie(0);
#define int long long
#define ld long double
#define pii pair <int , int>
#define all(x) x.begin() , x.end()
#define ff first
#define ss second
#define endl '\n'
 
const int N = 1e6 + 5 ;
const int inf = 1e16 ;
const int mod = 1e9 + 8 ;
const double eps = 1e-8 ;
 
template <class T>
bool chmax( T& x , const T& y ){
  bool f = 0 ;
  if ( x < y ) x = y , f = 1 ;
  return f ;
}
template <class T>
bool chmin( T &x , const T &y ){
  bool f = 0 ;
  if ( x > y ) x = y , f = 1 ;
  return f ;
}
 
//code
 
int n ;
ld res , a[N] , b[N] ;
pair <ld , int> p1[N] , p2[N] ;

void solve(){
	cout << fixed << setprecision(4) ;
	cin >> n ;
	for ( int i = 1 ; i <= n ; i ++ ) cin >> a[i] >> b[i] ;
	sort ( a+1 , a + n+1 ) ; sort ( b+1 , b + n+1 ) ;
	reverse ( a+1 , a + n+1 ) ; reverse ( b+1 , b + n+1 ) ;
	for ( int i = 1 ; i <= n ; i ++ ){
		p1[i].ff = p1[i-1].ff + a[i] ;
		p2[i].ff = p2[i-1].ff + b[i] ;
		p1[i].ss = i ;
		p2[i].ss = i ;
	}
	sort ( p1+1 , p1+n+1 ) ;
	sort ( p2+1 , p2+n+1 ) ;
	int j = 1 ;
	for ( int i = 1 ; i <= n ; i ++ ){
		chmax ( res , min(p1[j].ff-p2[i].ss-p1[j].ss,p2[i].ff-p1[j].ss-p2[i].ss) ) ;
		while ( j < n && p1[j].ff < p2[i].ff ) 
			j ++ , chmax ( res , min(p1[j].ff-p2[i].ss-p1[j].ss,p2[i].ff-p1[j].ss-p2[i].ss) ) ;
	}
	cout << res ;
}

signed main(){
    ios ;
	int t = 1 ;
	//cin >> t ;
	while ( t -- ) solve() ;
}

Compilation message

sure.cpp: In function 'void fopn(std::string)':
sure.cpp:10:31: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 | void fopn(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);}
      |                        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sure.cpp:10:72: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 | void fopn(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);}
      |                                                                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4440 KB Output is correct
2 Correct 1 ms 4444 KB Output is correct
3 Correct 1 ms 4444 KB Output is correct
4 Correct 1 ms 4444 KB Output is correct
5 Correct 1 ms 4444 KB Output is correct
6 Correct 1 ms 4440 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4440 KB Output is correct
2 Correct 1 ms 4444 KB Output is correct
3 Correct 1 ms 4444 KB Output is correct
4 Correct 1 ms 4444 KB Output is correct
5 Correct 1 ms 4444 KB Output is correct
6 Correct 1 ms 4440 KB Output is correct
7 Correct 1 ms 4444 KB Output is correct
8 Correct 1 ms 4444 KB Output is correct
9 Correct 1 ms 4440 KB Output is correct
10 Correct 1 ms 4444 KB Output is correct
11 Correct 1 ms 4444 KB Output is correct
12 Correct 1 ms 4444 KB Output is correct
13 Correct 1 ms 4444 KB Output is correct
14 Correct 2 ms 4444 KB Output is correct
15 Correct 1 ms 4576 KB Output is correct
16 Correct 2 ms 4440 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4440 KB Output is correct
2 Correct 1 ms 4444 KB Output is correct
3 Correct 1 ms 4444 KB Output is correct
4 Correct 1 ms 4444 KB Output is correct
5 Correct 1 ms 4444 KB Output is correct
6 Correct 1 ms 4440 KB Output is correct
7 Correct 1 ms 4444 KB Output is correct
8 Correct 1 ms 4444 KB Output is correct
9 Correct 1 ms 4440 KB Output is correct
10 Correct 1 ms 4444 KB Output is correct
11 Correct 1 ms 4444 KB Output is correct
12 Correct 1 ms 4444 KB Output is correct
13 Correct 1 ms 4444 KB Output is correct
14 Correct 2 ms 4444 KB Output is correct
15 Correct 1 ms 4576 KB Output is correct
16 Correct 2 ms 4440 KB Output is correct
17 Correct 79 ms 15692 KB Output is correct
18 Correct 89 ms 15704 KB Output is correct
19 Correct 79 ms 15656 KB Output is correct
20 Correct 85 ms 15696 KB Output is correct
21 Correct 82 ms 15832 KB Output is correct
22 Correct 83 ms 15556 KB Output is correct
23 Correct 81 ms 15700 KB Output is correct
24 Correct 79 ms 15588 KB Output is correct
25 Correct 90 ms 15752 KB Output is correct
26 Correct 86 ms 15828 KB Output is correct