#include #include #include #include using namespace std; long long maxWeight(vector& birthYears, vector& hungryYears) { sort(birthYears.begin(), birthYears.end(), greater()); sort(hungryYears.begin(), hungryYears.end(), greater()); long long totalWeight = 0; int j = 0; for (int i = 0; i < hungryYears.size(); ++i) { while (j < birthYears.size() && birthYears[j] >= hungryYears[i]) { totalWeight += static_cast(hungryYears[i]) * hungryYears[i]; ++j; } } return totalWeight; } int main() { ifstream infile("planets.in.txt"); ofstream outfile("planets.out.txt"); int n, m; infile >> n >> m; vector birthYears(n); vector hungryYears(m); for (int i = 0; i < n; ++i) { infile >> birthYears[i]; } for (int i = 0; i < m; ++i) { infile >> hungryYears[i]; } long long result = maxWeight(birthYears, hungryYears) / 2; outfile << result << endl; infile.close(); outfile.close(); return 0; }