제출 #149065

#제출 시각아이디문제언어결과실행 시간메모리
149065샌즈뼈 (#200)십자가 놓기 (FXCUP4_cross)C++17
63 / 100
204 ms11232 KiB
#include "cross.h"
#include <bits/stdc++.h>
using namespace std;

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

  vector<pair<int, int>> v;
  for(int i=0; i<N; i++) v.emplace_back(O[i], I[i]);

  sort(v.rbegin(), v.rend());

  //for(int i=0;i <N; i++) cout << v[i].first << ' '; cout << endl;
  //for(int i=0;i <N; i++) cout << v[i].second << ' '; cout << endl;


  set<int> s;
  for(int i=0; i<K-1; i++) {
    s.insert(v[i].second);
  }

  long long res = 0;
  for(int i=K-1; i<N; i++) {
    if(s.size()+1 > K) s.erase(s.begin());
    s.insert(v[i].second);

    int r = v[i].first;
    int t = *(s.begin());

    //cout <<r << ' ' << t << endl;


    res = max(res, 1LL*r*r - 1LL*(r-t)*(r-t));
  }

	return res;
}

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

cross.cpp: In function 'long long int SelectCross(int, std::vector<int>, std::vector<int>)':
cross.cpp:24:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(s.size()+1 > K) s.erase(s.begin());
        ~~~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...