Submission #1279353

#TimeUsernameProblemLanguageResultExecution timeMemory
1279353hanguyendanghuyStove (JOI18_stove)C++20
100 / 100
19 ms3708 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define fi first #define se second constexpr ll MAXN=3e5+5,MAXV=1e5,MOD=1e9+7,INF=1e18; ll n,m,i,j,p,k,ans,dem,st,en,a[MAXN],mark[MAXN]; vector<pair<ll,ll>> dist; int main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); // freopen("test.inp","r",stdin); // freopen("test.out","w",stdout); cin>>n>>m; m--; dist.pb({0,1}); for(i=1;i<=n;i++){ cin>>a[i]; if(i>1) dist.pb({a[i]-a[i-1],i}); } sort(dist.begin(),dist.end(),greater<pair<ll,ll>>()); while(dist.size()>m){ auto k=dist[dist.size()-1]; ans+=k.fi; if(!mark[k.se]&&!mark[k.se-1]) ans++; else if(mark[k.se]&&mark[k.se-1]) ans--; mark[k.se]=1,mark[k.se-1]=1; dist.pop_back(); } for(i=1;i<=n;i++) if(!mark[i]) ans++; cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...