Submission #45128

#TimeUsernameProblemLanguageResultExecution timeMemory
45128PajarajaArt Exhibition (JOI18_art)C++17
100 / 100
421 ms219856 KiB
#include <bits/stdc++.h>
using namespace std;
pair<long long,long long> a[500007],b[500007];
int main()
{
	int n,cnt=0;
	scanf("%d",&n);
	for(int i=0;i<n;i++) scanf("%lld%lld",&b[i].first,&b[i].second);
	sort(b,b+n);
	for(int i=0;i<n;i++)
	{
		a[cnt].first=b[i].first;
		a[cnt].second+=b[i].second;
		if(b[i].first!=b[i+1].first) cnt++;
	}
	long long sum=0,sol=-1000000000000000000LL,minn=1000000000000000000LL;
	for(int i=0;i<cnt;i++)
	{
		minn=fmin(minn,-a[i].first+sum);
		sum+=a[i].second;
		sol=fmax(sol,sum-a[i].first-minn);
	}
	printf("%lld",sol);
}

Compilation message (stderr)

art.cpp: In function 'int main()':
art.cpp:7:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
  ~~~~~^~~~~~~~~
art.cpp:8:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i=0;i<n;i++) scanf("%lld%lld",&b[i].first,&b[i].second);
                       ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...