More actions
imported>smksyj No edit summary |
(Repair batch-0004 pages from live compare) |
||
| (3 intermediate revisions by one other user not shown) | |||
| Line 11: | Line 11: | ||
vector<int> ret( ar.size() - 1 ); | vector<int> ret( ar.size() - 1 ); | ||
for(int i = 0 ; i < ar.size() - 1 ; ++i) | for(int i = 0 ; i < ar.size() - 1 ; ++i) | ||
ret | ret[i] = ar[i+1] - ar[i]; | ||
return ret; | return ret; | ||
} | } | ||
| Line 32: | Line 32: | ||
numPivot = iter; | numPivot = iter; | ||
for(int i = 0 ; i < iter ; ++i) | for(int i = 0 ; i < iter ; ++i) | ||
fin >> ar | fin >> ar[i]; | ||
fin.close(); | fin.close(); | ||
sort(ar.begin(), ar.end()); | sort(ar.begin(), ar.end()); | ||
| Line 40: | Line 40: | ||
int getTotal(int numPivot, const vector<int>& ar, const vector<int>& pivots) | int getTotal(int numPivot, const vector<int>& ar, const vector<int>& pivots) | ||
{ | { | ||
int ret = ar | int ret = ar[ ar.size() - 1 ] - ar[0]; | ||
for(int i = 0 ; i < pivots.size() ; ++i) | for(int i = 0 ; i < pivots.size() ; ++i) | ||
ret -= pivots | ret -= pivots[i]; | ||
ret += numPivot; | ret += numPivot; | ||
return ret; | return ret; | ||
| Line 60: | Line 60: | ||
---- | ---- | ||
[ | [[[Lovely]boy^_^/USACO]] | ||
Latest revision as of 00:37, 27 March 2026
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
vector<int> getDistance(const vector<int>& ar)
{
vector<int> ret( ar.size() - 1 );
for(int i = 0 ; i < ar.size() - 1 ; ++i)
ret[i] = ar[i+1] - ar[i];
return ret;
}
vector<int> getPivot(int numPivot, const vector<int>& distance)
{
vector<int> ret(distance);
sort(ret.begin(), ret.end(), greater<int>());
ret.erase(ret.begin() + numPivot - 1, ret.end());
return ret;
}
vector<int> getDatas(int& numPivot)
{
int max, iter;
ifstream fin("barn1.in");
fin >> numPivot >> max >> iter;
vector<int> ar(iter);
if(numPivot > iter)
numPivot = iter;
for(int i = 0 ; i < iter ; ++i)
fin >> ar[i];
fin.close();
sort(ar.begin(), ar.end());
return ar;
}
int getTotal(int numPivot, const vector<int>& ar, const vector<int>& pivots)
{
int ret = ar[ ar.size() - 1 ] - ar[0];
for(int i = 0 ; i < pivots.size() ; ++i)
ret -= pivots[i];
ret += numPivot;
return ret;
}
int main()
{
int numPivot;
vector<int> data = getDatas(numPivot);
vector<int> distance = getDistance(data);
vector<int> pivots = getPivot(numPivot, distance);
ofstream fout("barn1.out");
fout << getTotal(numPivot, data, pivots) << endl;
fout.close();
return 0;
}