제출 #307177

#제출 시각아이디문제언어결과실행 시간메모리
307177radaiosm7Stove (JOI18_stove)C++98
100 / 100
53 ms7152 KiB
#include <bits/stdc++.h>
using namespace std;
int n, k, i, a, b, ans;
vector<pair<int,int>> ranges;
unordered_set<int> check;
vector<int> diff;

int main() {
  //freopen("test.in", "r", stdin);

  scanf("%d %d", &n, &k);
  check.rehash(n);
  ans = n;
  k--;

  for (i=0; i < n; i++) {
    scanf("%d", &a);
    check.insert(a);

    if (check.find(a-1) != check.end()) {
      ranges[ranges.size()-1].second = a+1;
    }

    else {
      ranges.push_back(make_pair(a, a+1));
    }
  }

  for (i=1; i < ranges.size(); i++) {
    diff.push_back(ranges[i].first - ranges[i-1].second);
  }

  k = diff.size() - k;
  sort(diff.begin(), diff.end());

  for (i=0; i < k; i++) {
    ans += diff[i];

  }

  printf("%d\n", ans);
  return 0;
}

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

stove.cpp: In function 'int main()':
stove.cpp:29:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |   for (i=1; i < ranges.size(); i++) {
      |             ~~^~~~~~~~~~~~~~~
stove.cpp:11:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   11 |   scanf("%d %d", &n, &k);
      |   ~~~~~^~~~~~~~~~~~~~~~~
stove.cpp:17:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   17 |     scanf("%d", &a);
      |     ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...