Submission #1222483

#TimeUsernameProblemLanguageResultExecution timeMemory
1222483khongphaifuArt Exhibition (JOI18_art)C++20
100 / 100
107 ms12124 KiB
#include <bits/stdc++.h> 

using namespace std;

#define pb  push_back  
#define ll  long long
#define el  "\n"
#define alla(a,n)  a+1,a+n+1
#define fi first
#define se second
#define all(v)  v.begin(),v.end()
#define fu(i,a,b)  for(ll i=a;i<=b;i++)
#define fud(i,a,b)  for(ll i=a;i>=b;i--)

const ll MOD=1e9+7 ;//1234567891;
const ll inf=1e18;
const ll base = 311;
const ll N=1e6+5;
const ll N1=1e3+5;
template <class T> bool mini(T &x, T y){return (x > y ? x = y, 1 : 0);}
template <class T> bool maxi(T &x, T y){return (x < y ? x = y, 1 : 0);}
template <class T> void add(T &x, ll y){x += y; if(x >= MOD) x -= MOD;}
template <class T> void sub(T &x, T y){x -= y; if(x < 0) x += MOD;}
/*v*/
int dx[8] = {1, -1, 0, 0, 1, 1, -1, -1},
    dy[8] = {0, 0, 1, -1, 1, -1, 1, -1};

void rtn()
{
    cerr<<el<<"time: "<<clock()<<"ms"<<el;
    exit(0);
}

ll n;
pair<ll,ll> art[N];

namespace sub1
{
    bool checksub()
    {
        return n<=5000;
    }

    void sol()
    {
        ll ans=0;
        fu(i,1,n)
        {
            ll S=0;
            fu(j,i,n)
            {
                S+=art[j].se;
                maxi(ans,S-art[j].fi+art[i].fi); 
            }
        }
        cout<<ans;  
    }
}

namespace sub2
{
    ll pre[N];
    void sol()
    {
        fud(i,n,1) pre[i]=pre[i+1]+art[i].se;
        ll mi=inf;
        ll ans=0;
        fud(i,n,1)
        {
            mini(mi,pre[i+1]+art[i].fi);
            maxi(ans,pre[i]+art[i].fi-mi);
        }
        cout<<ans;
    }
}

signed main(void)
{
    #define TASK  "art"
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);srand(time(0)); 
    if(fopen(TASK".inp","r"))
    {
        freopen(TASK".inp" ,"r",stdin) ; freopen(TASK".out" ,"w",stdout);
    }

    cin>>n;
    fu(i,1,n) cin>>art[i].fi>>art[i].se;
    sort(alla(art,n));
    if(sub1::checksub()) return sub1::sol(),0;
    return sub2::sol(),0;

    
    return 0;
}

Compilation message (stderr)

art.cpp: In function 'int main()':
art.cpp:83:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   83 |         freopen(TASK".inp" ,"r",stdin) ; freopen(TASK".out" ,"w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
art.cpp:83:49: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   83 |         freopen(TASK".inp" ,"r",stdin) ; freopen(TASK".out" ,"w",stdout);
      |                                          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...