제출 #411661

#제출 시각아이디문제언어결과실행 시간메모리
411661nichkeStove (JOI18_stove)C++14
100 / 100
31 ms6288 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'

int n, k;
vector<int> diff;
vector<pair<int, int>> a;
vector<pair<int, int>> b;

signed main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cin >> n;
	cin >> k;
	for (int i = 0; i < n; i++) {
		int l, r; cin >> l; r = l + 1;
		a.push_back({l, r});
	}
	sort(a.begin(), a.end());
	int l = a[0].first, r = a[0].second;
	for (int i = 1; i < a.size(); i++) {
		if (a[i].first <= a[i - 1].second) {
			r = max(a[i].second, r);
		} else {
			b.push_back({l, r});
			l = a[i].first;
			r = a[i].second;
		}
	}
	b.push_back({l, r});
	for (int i = 1; i < b.size(); i++) {
		diff.push_back(b[i].first - b[i - 1].second);
	}
	sort(diff.begin(), diff.end());
	int cnt = 0;
	int res = 0;
	for (int i = 0; i < b.size(); i++) {
		res += b[i].second - b[i].first;
		cnt++;
	}
	int j = 0;
	while (cnt > k) {
		cnt--;
		res += diff[j++];
	}
	cout << res << '\n';
	return 0;
}

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

stove.cpp: In function 'int main()':
stove.cpp:22:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |  for (int i = 1; i < a.size(); i++) {
      |                  ~~^~~~~~~~~~
stove.cpp:32:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |  for (int i = 1; i < b.size(); i++) {
      |                  ~~^~~~~~~~~~
stove.cpp:38:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |  for (int i = 0; i < b.size(); i++) {
      |                  ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...