Submission #148891

#TimeUsernameProblemLanguageResultExecution timeMemory
148891Welcome to osu! (#200)Crosses on the Grid (FXCUP4_cross)C++17
100 / 100
130 ms6508 KiB
#include "cross.h"
#include <bits/stdc++.h>
#define va first
#define vb second
using namespace std;
typedef pair<int,int> pii;
typedef long long ll;
ll ans,in,out;
pii C[200005];
priority_queue<int, vector<int>, greater<int> > PQ;
long long SelectCross(int K, std::vector<int> I, std::vector<int> O) {
	int N = I.size();
	for(int i=0; i<N; i++){
        C[i].va = O[i];
        C[i].vb = I[i];
	}
	sort(C,C+N);
	out = C[N-K].va;
	for(int i=N-K; i<N; i++) PQ.push(C[i].vb);
	in = PQ.top();
	ans = 2*in*out-in*in;
	for(int i=N-K-1; i>=0; i--){
        out = C[i].va;
        PQ.pop();
        PQ.push(C[i].vb);
        in = PQ.top();
        ans = max(ans,2*in*out-in*in);
        //cout << in << out << ans << '\n';
	}
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...