Submission #1792444


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> P;
typedef pair<int,P> P1;
typedef pair<P,P> P2;
#define pu push
#define pb push_back
#define mp make_pair
#define eps 1e-7
#define INF 1000000000
#define mod 1000000007
#define fi first
#define sc second
#define rep(i,x) for(int i=0;i<x;i++)
#define repn(i,x) for(int i=1;i<=x;i++)
#define SORT(x) sort(x.begin(),x.end())
#define ERASE(x) x.erase(unique(x.begin(),x.end()),x.end())
#define POSL(x,v) (lower_bound(x.begin(),x.end(),v)-x.begin())
#define POSU(x,v) (upper_bound(x.begin(),x.end(),v)-x.begin())
struct segtree{
	#define s (1<<18)
	int seg[s];
	void init(){
		fill(seg,seg+s,-1e9);
	}
	void update(int k,int a){
		k+=s/2-1; seg[k]=max(seg[k],a);
		while(k>0){
			k=(k-1)/2;
			seg[k]=max(seg[k*2+1],seg[k*2+2]);
		}
	}
	int query(int a,int b,int k,int l,int r){
		if(r<a || b<l || b<a) return -1e9;
		if(a<=l && r<=b) return seg[k];
		else{
			int vl=query(a,b,k*2+1,l,(l+r)/2);
			int vr=query(a,b,k*2+2,(l+r)/2+1,r);
			return max(vl,vr);
		}
	}
}seg1,seg2;
int n,m; P p[100005];
int main(){
	cin>>n>>m;
	rep(i,n){
		int a,b;
		cin>>a>>b; a++;
		p[i] = mp(a,b);
	}
	seg1.init(); seg2.init();
	sort(p,p+n);
	seg1.update(0,0);
	seg2.update(0,0);
	int ans = 0;
	for(int i=0;i<n;i++){
		int L = p[i].fi,R = L-1+p[i].sc,dp = -1e9;
		int v = seg1.query(0,L-1,0,0,(1<<17)-1);
		dp = max(dp,v+p[i].sc);
		int v2 = seg2.query(L,R-1,0,0,(1<<17)-1);
		dp = max(dp,v2+R+L-1);
		ans = max(ans,dp);
		seg1.update(R,dp);
		seg2.update(R,dp-2*R);
	}
	cout<<ans<<endl;
}

Submission Info

Submission Time
Task H - 焼肉の達人
User IH19980412
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1625 Byte
Status AC
Exec Time 125 ms
Memory 3072 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 53
Set Name Test Cases
Sample sample-01.txt, sample-02.txt
All sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, 01-31.txt, 01-32.txt, 01-33.txt, 01-34.txt, 01-35.txt, 01-36.txt, 01-37.txt, 01-38.txt, 01-39.txt, 01-40.txt, 01-41.txt, 01-42.txt, 01-43.txt, 01-44.txt, 01-45.txt, 01-46.txt, 01-47.txt, 01-48.txt, 01-49.txt, sample-01.txt, sample-02.txt
Case Name Status Exec Time Memory
01-01.txt AC 3 ms 2304 KB
01-02.txt AC 57 ms 3072 KB
01-03.txt AC 2 ms 2304 KB
01-04.txt AC 66 ms 3072 KB
01-05.txt AC 76 ms 3072 KB
01-06.txt AC 87 ms 3072 KB
01-07.txt AC 65 ms 3072 KB
01-08.txt AC 71 ms 3072 KB
01-09.txt AC 78 ms 3072 KB
01-10.txt AC 3 ms 2304 KB
01-11.txt AC 2 ms 2304 KB
01-12.txt AC 2 ms 2304 KB
01-13.txt AC 2 ms 2304 KB
01-14.txt AC 6 ms 2432 KB
01-15.txt AC 122 ms 3072 KB
01-16.txt AC 124 ms 3072 KB
01-17.txt AC 123 ms 3072 KB
01-18.txt AC 123 ms 3072 KB
01-19.txt AC 89 ms 3072 KB
01-20.txt AC 92 ms 3072 KB
01-21.txt AC 95 ms 3072 KB
01-22.txt AC 97 ms 3072 KB
01-23.txt AC 97 ms 3072 KB
01-24.txt AC 98 ms 3072 KB
01-25.txt AC 99 ms 3072 KB
01-26.txt AC 100 ms 3072 KB
01-27.txt AC 104 ms 3072 KB
01-28.txt AC 109 ms 3072 KB
01-29.txt AC 110 ms 3072 KB
01-30.txt AC 114 ms 3072 KB
01-31.txt AC 2 ms 2304 KB
01-32.txt AC 3 ms 2304 KB
01-33.txt AC 2 ms 2304 KB
01-34.txt AC 4 ms 2304 KB
01-35.txt AC 12 ms 2432 KB
01-36.txt AC 3 ms 2304 KB
01-37.txt AC 2 ms 2304 KB
01-38.txt AC 13 ms 2432 KB
01-39.txt AC 4 ms 2304 KB
01-40.txt AC 5 ms 2304 KB
01-41.txt AC 80 ms 3072 KB
01-42.txt AC 79 ms 3072 KB
01-43.txt AC 90 ms 3072 KB
01-44.txt AC 90 ms 3072 KB
01-45.txt AC 89 ms 3072 KB
01-46.txt AC 125 ms 3072 KB
01-47.txt AC 91 ms 3072 KB
01-48.txt AC 99 ms 3072 KB
01-49.txt AC 114 ms 3072 KB
sample-01.txt AC 3 ms 2304 KB
sample-02.txt AC 2 ms 2304 KB