CANDLESTICK 질문입니다. porcosedol 오답이 발생하는데 제가 생각해봤던 테스트케이스들로는 문제점을 못 찾아서 테스트케이스 추천을 부탁드리려고 질문드립니다. #include <iostream> #include <utility> #include <vector> using namespace std; void solve() { int num; cin >> num; vector<pair<int, int>> p; for (int i = 0; i < num; i++) { int first, second; cin >> first >> second; p.push_back(make_pair(first, second)); } int max_size = 0; pair<int, int> last_minmax; vector<pair<int, int>> w; for (int i = 0; i < p.size(); i++) { int max_low = p.front().first; int min_high = p.front().second; int last_min = 0; int last_max = 0; int last_pos = 0; for (int j = i; j < p.size(); j++) { if (p.at(j).first >= last_max || p.at(j).second <= last_min) { max_low = p.at(j).first; min_high = p.at(j).second; last_pos = j - i; } else { if (p.at(j).first > max_low) max_low = p.at(j).first; if (p.at(j).second < min_high) min_high = p.at(j).second; } w.push_back(p.at(j)); last_min = p.at(j).first; last_max = p.at(j).second; auto size = (min_high - max_low) * (w.size() - last_pos); if (size > max_size) max_size = size; //for (auto k : w) //cout << k.first << " - " << k.second << " "; //cout <<" size = "<< size << endl; //if (j == p.size() - 1) // w.clear(); } w.clear(); } cout << max_size << endl; } int main() { int test_num; cin >> test_num; while (test_num) { solve(); test_num--; } return 0; } 10년 전
1개의 댓글이 있습니다. JongMan 알고리즘을 간단하게라도 설명해 주시는 편이 답변을 쉽게 받으실 수 있을 겁니다. 10년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
porcosedol
오답이 발생하는데 제가 생각해봤던 테스트케이스들로는 문제점을 못 찾아서 테스트케이스 추천을 부탁드리려고 질문드립니다.
10년 전