http:codeforces.comproblemsetproblem588ADuff and Meat

xiaoxiao2021-02-28  47

优先队列水过去就好,当然是存在O(n)的,每次比较单价得到当前最小单价再去买即可。

#include <iostream> #include <string> #include <cstdio> #include <algorithm> #include <vector> #include <stack> #include <queue> #define MAX 105 #define INF 0x3f3f3f3f using namespace std; struct cmp { constexpr bool operator()(const int& a, const int& b)const{ return a > b; } }; priority_queue<int, vector<int>, cmp > q; int main() { freopen("a.txt", "r", stdin); freopen("b.txt", "w", stdout); int n, x, y; cin >> n; int s = 0; for (int i = 1; i <= n; ++i) { scanf("%d%d", &x, &y); q.push(y); int t = q.top(); s += x * t; } cout << s << endl; return 0; }
转载请注明原文地址: https://www.6miu.com/read-2619181.html

最新回复(0)