結果
問題 | No.615 集合に分けよう |
ユーザー |
![]() |
提出日時 | 2019-05-12 21:54:35 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 32 ms / 2,000 ms |
コード長 | 2,694 bytes |
コンパイル時間 | 1,060 ms |
コンパイル使用メモリ | 106,508 KB |
実行使用メモリ | 6,224 KB |
最終ジャッジ日時 | 2024-07-05 17:43:01 |
合計ジャッジ時間 | 3,255 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 26 |
ソースコード
#include <stdio.h>#include <string.h>#include <algorithm>#include <iostream>#include <string>#include <vector>#include <functional>#include <map>#include <iomanip>#include <math.h>#include <stack>#include <queue>#include <bitset>#include <cstdlib>#include <tuple>#include <cctype>#include <ctype.h>#include <set>#include <sstream>#include <time.h>using namespace std;#define int long long#define rep(i,s,n) for(int i = s;i<n;i++)#define repe(i,s,n) for(int i = s;i<=n;i++)#define rrep(i,s,n) for(int i = (n)-1;i>=(s);i--)#define all(v) (v).begin(),(v).end()#define pb push_back#define fi first#define se second#define chmin(a,b) a=min((a),(b))#define chmax(a,b) a=max((a),(b))#define l1 list[index]#define l2 list[index - 1]#define l3 list[index + 1]#define iif(i,j) ((i<0 && j<0) || (i>0 && j>0)) ? true : falsetypedef long long ll;typedef pair<int, int>pint;typedef vector<int>vint;typedef vector<pint>vpint;typedef pair<pint, int> P1;typedef pair<int, pint> P2;typedef pair<pint, pint> PP;static const ll maxLL = (ll)1 << 62;const ll MOD = 1000000007;const ll INF = 1e18;const double PI = 3.14159265359;int ca[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };signed main() {string s;//vector<vector<int>>list(200000, vector<int>(2));vector<int>listsum;vector<pair<int, int>>list, list2;int l, cnt = 0, maxn = 0;int n, n2, k, sum = 0, sumsum = 0;cin >> n >> k;listsum.push_back(0);for (int i = 0; i < n; i++) {int num;cin >> num;//list.push_back(num);list.push_back(make_pair( num, i));//sumsum += num;}//cout << endl;sort(list.begin(), list.end());sumsum = list[list.size() - 1].first - list[0].first;for (int i = 1; i < n; i++) {int num = list[i].first - list[i - 1].first;list2.push_back( make_pair(num, i - 1));//list2.push_back(num);listsum.push_back(listsum[listsum.size() - 1] + list[i].first);}sort(list2.begin(), list2.end());vector<int>list4;for (int i = 0; i < k-1; i++) {//list4.push_back(list2[list2.size() - i - 1].second);sumsum -= list2[list2.size() - i - 1].first;}//cout << "sumsum->" << sumsum << endl;cout << sumsum << endl;//sort(list4.begin(), list4.end());//int index = 0;//for (int i = 0; i < (int)list4.size(); i++) {// //sum += listsum[list4[i]] - listsum[index];// sum += list[list4[i]].first - list[index].first;// index = list4[i] + 1;//}//cout << "sum->" << sum << endl;//for (int i = 0; i < n; i++) {// cout << list[i].first << " ";//}//cout << endl;//for (int i = 0; i < (int)list2.size(); i++) {// cout << list2[i].first << " ";//}//cout << endl;getchar();getchar();return 0;}