이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "squad.h"
#include <utility>
#include <algorithm>
using namespace std;
vector<int> A, D, P;
int N;
pair<long long, long long> t1[300001],t2[300001];
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){
long long ret = -1;
if(N < 10){
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
if(i==j) continue;
ret = max(ret, 1ll*X*(A[i]+D[j])+1ll*Y*(P[i]+P[j]));
}
}
return ret;
}
for(int i = 0; i < N; i++){
t1[i] = {1ll*X*A[i]+1ll*Y*P[i],i};
t2[i] = {1ll*X*D[i]+1ll*Y*P[i],i};
}
sort(t1,t1+N);
sort(t2,t2+N);
for(int i = N-1; i >= N-5; i--){
for(int j = N-1; j >= N-5; j--){
if(i<0) continue;
if(j<0) continue;
if(t1[i].second == t2[j].second) continue;
ret = max(ret,t1[i].first+t2[j].first);
}
}
return ret;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |