Submission #150645

#TimeUsernameProblemLanguageResultExecution timeMemory
150645코딩은 체육과목입니다 (#200)Organizing the Best Squad (FXCUP4_squad)C++17
19 / 100
3101 ms28604 KiB
#include "squad.h" #include <stdio.h> #include <vector> #include <queue> #include <algorithm> #include <iostream> #include <string> #include <bitset> #include <map> #include <set> #include <tuple> #include <string.h> #include <math.h> #include <random> #include <functional> #include <assert.h> #include <math.h> #define all(x) (x).begin(), (x).end() #define xx first #define yy second using namespace std; using i64 = long long int; using ii = pair<int, int>; using ii64 = pair<i64, i64>; int n; vector<int> a, d, p; void Init(std::vector<int> A, std::vector<int> D, std::vector<int> P) { n = A.size(); a = A; d = D; p = P; } long long BestSquad(int X, int Y) { i64 ans = 0; vector<i64> as(n), ds(n), ps(n); multiset<i64> ms; for (int i = 0; i < n; i++) { as[i] = a[i]; as[i] *= X; ds[i] = d[i]; ds[i] *= X; ps[i] = p[i]; ps[i] *= Y; ms.insert(ds[i] + ps[i]); } for (int i = 0; i < n; i++) { ms.erase(ms.find(ds[i] + ps[i])); ans = max(ans, *ms.rbegin() + as[i] + ps[i]); ms.insert(ds[i] + ps[i]); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...