제출 #828743

#제출 시각아이디문제언어결과실행 시간메모리
828743ajayStove (JOI18_stove)C++14
100 / 100
24 ms2332 KiB
/* Ajay Jadhav */ #include <iostream> #include <cstdio> #include <algorithm> #include <deque> #include <vector> #include <cstdlib> #include <iomanip> #include <cmath> #include <queue> #include <map> #include <set> #include <stack> #include <ctime> #include <string.h> #include <climits> #include <cstring> #include <numeric> using namespace std; #define ll long long #define pb push_back #define pii pair<int, int> #define vi vector<int> #define vvi vector<vi> #define vii vector<pii> #define mi map<int, int> #define mii map<pii, int> #define all(a) (a).begin(), (a).end() #define x first #define y second #define sz(x) (int)x.size() #define hell 1000000007 #define rep(i, a, b) for (int i = a; i < b; i++) #define endl '\n' void solve() { int n, k; ll ans = 0; cin >> n >> k; vi a(n); rep(i, 0, n) { cin >> a[i]; ans++; } int blobs = 1; sort(all(a)); rep(i, 1, sz(a)) { if (a[i] - 1 != a[i - 1]) { blobs++; } } vi ranges; rep(i, 1, n) { int d = a[i] - a[i - 1] - 1; if (d > 0) { ranges.pb(d); } } sort(all(ranges)); int index = 0; int need = (blobs - k); // if (need > sz(ranges)) // { // cout<<a[n - 1] - a[0] + 1<<endl; // return; // } while (need-- > 0) { ans += ranges[index++]; k++; } cout << ans << endl; } signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t = 1; // cin>>t; while (t--) { solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...