제출 #148737

#제출 시각아이디문제언어결과실행 시간메모리
148737코딩은 체육과목입니다 (#200)십자가 놓기 (FXCUP4_cross)C++17
100 / 100
131 ms8860 KiB
#include "cross.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>;

i64 SelectCross(int K, std::vector<int> I, std::vector<int> O) 
{
    int n = I.size();

    vector<ii64> arr(n);

    for (int i = 0; i < n; i++)
    {
        arr[i].xx = I[i];
        arr[i].yy = O[i];
    }

    sort(all(arr));

    priority_queue<i64, vector<i64>, greater<i64>> maxw;
    i64 ans = 0;

    for (int i = n - 1; i >= 0; i--)
    {
        maxw.push(arr[i].yy);

        if (maxw.size() > K)
            maxw.pop();
        
        if (maxw.size() == K)
            ans = max(ans, arr[i].xx * (2 * maxw.top() - arr[i].xx));
    }

	return ans;
}

컴파일 시 표준 에러 (stderr) 메시지

cross.cpp: In function 'i64 SelectCross(int, std::vector<int>, std::vector<int>)':
cross.cpp:49:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (maxw.size() > K)
             ~~~~~~~~~~~~^~~
cross.cpp:52:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (maxw.size() == K)
             ~~~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...