Submission #319357

#TimeUsernameProblemLanguageResultExecution timeMemory
319357TAOwooshArt Exhibition (JOI18_art)C++17
100 / 100
279 ms21108 KiB
#pragma GCC optimize ("Ofast")
#pragma GCC target ("avx,avx2")
#pragma GCC optimize ("trapv")
 
 
#include <bits/stdc++.h>
using namespace std;
 
#define fastio ios_base::sync_with_stdio(0); cin.tie(0); cin.exceptions(cin.failbit);
#define rep(i, a, b) for(lli i = a; i < (b); ++i)
#define trav(a, x) for(auto& a : x)
#define ff first
#define ss second
#define mp make_pair
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define sz(x) (lli)(x).size()
#define what_is(x) cerr << #x << " is " << x << endl;
#define wis cout<<endl<<"I already speak english, bitch"<<endl<<endl;
 
typedef long long int lli;
typedef vector<lli> vi;
typedef pair<lli,lli> ii;
typedef vector<ii> vii;
typedef pair<ii,lli> iii;
 
#define trace(args...) { string  _s =#args; replace(_s.begin(), _s.end(), ',',' '); stringstream _ss(_s); istream_iterator<string> _it(_ss); err(_it, args);}
void err(istream_iterator<string> it){}
template<typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args){
    cout <<  *it  << " : " << a << endl;
    err(++it, args...);
}
 
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/trie_policy.hpp>
using namespace __gnu_pbds;
 
template <typename T, class compare>
using ordered_set = tree<T, null_type, compare, rb_tree_tag, tree_order_statistics_node_update>;
//usage: ordered_set< el tipo , el comparador> nombre;


int main(){
	fastio;
	lli n; scanf("%lld\n",&n);
	vii v(n);
	rep(i,0,n){
		lli a,b;
		scanf("%lld %lld\n",&a,&b);
		v[i]={a,b};
	}
	sort(all(v));
	lli ans=0,sum=0,maxi=0,mini=0;
	rep(i,0,n){
		if(v[i].ss>sum+v[i].ss-(max(maxi,v[i].ff)-mini)){
			ans=max(ans,v[i].ss);
			maxi=mini=v[i].ff;
			sum=v[i].ss;
		}else{
			maxi=max(maxi,v[i].ff);
			sum+=v[i].ss;
			ans=max(ans,sum-(maxi-mini));
		}
	}
	printf("%lld\n",ans);
	return 0;
}

Compilation message (stderr)

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