제출 #1157546

#제출 시각아이디문제언어결과실행 시간메모리
1157546soduynga45Stove (JOI18_stove)C++20
0 / 100
10 ms15688 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ff first
#define ss second
#define pb push_back
int main() {
    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    float db,y[100000],x[1000000];
    long long t,i,l,n,mod=1000000007,c,a,m,e,d,b,k,j,w[300005],f,z[300005],g=0,q,p,r[300005],h,o[1001][1001];
    map<ll,ll>blp;
    set<ll>st;
    string s,sa[200005],ta[200005],sn,sm,sk,cr,sx,sy;
    pair<ll,ll>pr[30005];
    char ch[200005];
    vector<ll>ret,v;
    cin>>n>>k;
    a=0;
    for (i=1; i<=n; i++){
        cin>>z[i];
    }
    if (n==k){
        cout<<n;
        return 0;
    }
    if (n==2){
        cout<<z[n];
        return 0;
    }
    for (i=2; i<=n; i++){
        pr[i-1].ff=z[i]-z[i-1];
        pr[i-1].ss=i-1;
    }
    sort (pr+1, pr+n);
    for (i=1; i<=n-k; i++){
        a=a+pr[i].ff;
        if (pr[i].ss==1){
            if (pr[i+1].ss!=0){
                a++;
            }
        }
        if (pr[i].ss==n-1){
            if (pr[i-1].ss!=0){
                a++;
            }
        }
        if (pr[i].ss!=1 && pr[i].ss!=n-1){
            if (pr[i-1].ss!=0 && pr[i+1].ss!=0){
                a++;
            }
        }
        pr[i].ss=0;
    }
    a=a+k-1;
    cout<<a;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...