Submission #832431

#TimeUsernameProblemLanguageResultExecution timeMemory
832431_martynasCrosses on the Grid (FXCUP4_cross)C++17
100 / 100
115 ms17412 KiB
#include "cross.h"
#include <vector>
#include <algorithm>
#include <numeric>
#include <set>

using namespace std;

long long SelectCross(int K, vector<int> I, vector<int> O) {
	int N = I.size();
	long long mx = 0;
	vector<int> orderI(N);
	iota(orderI.begin(), orderI.end(), 0);
	sort(orderI.begin(), orderI.end(), [&](int i, int j) { return I[i] > I[j]; });
	long long mndi = 1e15;
	multiset<long long> maxo;
	for(int i = 0, j = 0; i < N; i++) {
		mndi = I[orderI[i]];
		if(maxo.size() < K || (*maxo.begin()) < O[orderI[i]]) {
			maxo.insert(O[orderI[i]]);
			if(maxo.size() > K) maxo.erase(maxo.begin());
		}
		if(maxo.size() == K) mx = max(mx, mndi*(2*(*maxo.begin())-mndi));
	}
	return mx;
}

Compilation message (stderr)

cross.cpp: In function 'long long int SelectCross(int, std::vector<int>, std::vector<int>)':
cross.cpp:19:18: warning: comparison of integer expressions of different signedness: 'std::multiset<long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   19 |   if(maxo.size() < K || (*maxo.begin()) < O[orderI[i]]) {
      |      ~~~~~~~~~~~~^~~
cross.cpp:21:19: warning: comparison of integer expressions of different signedness: 'std::multiset<long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   21 |    if(maxo.size() > K) maxo.erase(maxo.begin());
      |       ~~~~~~~~~~~~^~~
cross.cpp:23:18: warning: comparison of integer expressions of different signedness: 'std::multiset<long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   23 |   if(maxo.size() == K) mx = max(mx, mndi*(2*(*maxo.begin())-mndi));
      |      ~~~~~~~~~~~~^~~~
cross.cpp:17:17: warning: unused variable 'j' [-Wunused-variable]
   17 |  for(int i = 0, j = 0; i < N; i++) {
      |                 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...