Submission #149628

#TimeUsernameProblemLanguageResultExecution timeMemory
149628준표야 함수컵은 캐리해줄거지? (#200)Crosses on the Grid (FXCUP4_cross)C++17
100 / 100
125 ms6632 KiB
#include "cross.h"
#include <queue>
#include <algorithm>
#include <functional>
using namespace std;

typedef long long ll;

struct Info{
	int out, in;
	bool operator <(const Info &o)const{
		return out > o.out;
	}
};

ll sq(ll x){ return x * x; }

long long SelectCross(int K, std::vector<int> I, std::vector<int> O) {
	int N = I.size();
	vector<Info> v(N);
	for(int i = 0; i < N; i++){
		v[i].out = O[i];
		v[i].in = I[i];
	}

	sort(v.begin(), v.end());

	ll ans = 0;
	priority_queue<int, vector<int>, greater<int>> q;
	for(int i = 0; i < N; i++){
		q.push(v[i].in);
		while(q.size() > K) q.pop();
		if(q.size() == K)
			ans = max(ans, sq(v[i].out) - sq(v[i].out - q.top()));
	}

	return ans;
}

Compilation message (stderr)

cross.cpp: In function 'long long int SelectCross(int, std::vector<int>, std::vector<int>)':
cross.cpp:32:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   while(q.size() > K) q.pop();
         ~~~~~~~~~^~~
cross.cpp:33:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(q.size() == K)
      ~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...