#include #include #include #define ST first #define ND second #define MP make_pair #define FOREACH(it,c) for(auto it=(c).begin();it!=(c).end();++it) using namespace std; typedef long long LL; typedef pair PII; typedef vector VLL; typedef vector VI; typedef vector VC; typedef vector VPII; typedef pair PLL; int main() { map ma; int i,d; scanf("%d",&d); VI x(d),y(d); for(i=0;iST<=x[i]+y[i]) { it->ND.ND++; if(it->ND.ND==2) it=ma.erase(it); else ++it; } } // printf("b"); LL s1=0,s2,sm=0; FOREACH(it,ma) if(it->ND.ND==0) s1+=it->ND.ST; // printf("c"); for(i=0;iST<=x[i]+y[i]) { s2+=it->ND.ST; ++it; } if(s2>sm) sm=s2; } printf("%lld\n",sm+s1); }