제출 #657810

#제출 시각아이디문제언어결과실행 시간메모리
657810OgradLStove (JOI18_stove)C++14
100 / 100
48 ms3520 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

#define ll long long
#define p pair<int, int>
#define mkp make_pair
#define pb push_back

int main() {
    
    int N, K;
    cin >> N >> K;
    
    vector<ll> T(N);
    for (ll &n: T) cin >> n;
    
    vector<p> R;
    //vector<int> siz;
    int start = T[0];
    for (int i = 0; i < N; i++){
        if (i == N - 1){
            R.pb(mkp(start, T[i]+1));
            //cout << start << " " << T[i]+1 << "\n";
        } else if (T[i] + 1 != T[i + 1]){
            R.pb(mkp(start, T[i]+1));
            //siz.pb(T[i]+1 - start);
            //cout << start << " " << T[i]+1 << "\n";
            start = T[i + 1];
        }
    }
    //cout << "\n\n\n";
    
    vector<int> siz;
    for (int i = 0; i < R.size() - 1; i++){
        siz.pb(R[i+1].first - R[i].second);
        //cout << R[i].second << " " << R[i+1].first << " " << R[i+1].first - R[i].second << "\n";
    }
    
    
    sort(siz.begin(), siz.end(), greater<int>());
    
    ll sum = 0;
    for (int i = 0; i < K - 1 && i < siz.size(); i++){
        sum += siz[i];
        //cout << siz[i] << "\n";
    }
    //cout << T[N-1] << " " << T[0] << " " << sum << "\n";
    cout << T[N-1]+1-T[0]-sum << "\n";
}

컴파일 시 표준 에러 (stderr) 메시지

stove.cpp: In function 'int main()':
stove.cpp:37:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |     for (int i = 0; i < R.size() - 1; i++){
      |                     ~~^~~~~~~~~~~~~~
stove.cpp:46:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |     for (int i = 0; i < K - 1 && i < siz.size(); i++){
      |                                  ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...