AtCoder Beginner Contest 348 C問題
こちらの問題です。
問題
入出力例
解法
mapでそれぞれの色でグループ化し、それぞれのグループの最小値の中での最大の値を出力します。
#include <iostream>
#include <vector>
#include <string>
#include <unordered_set>
#include <cmath>
#include <map>
#include <algorithm>
#include <limits>
using namespace std;
int main() {
int N;
cin >> N;
map<int, vector<int>> groups;
for (int i = 0; i < N; i++) {
int x, y;
cin >> x >> y;
groups[y].push_back(x);
}
int maxOfMins = numeric_limits<int>::min();
for (const auto& group : groups) {
int minInGroup = *min_element(group.second.begin(), group.second.end());
maxOfMins = max(maxOfMins, minInGroup);
}
cout << maxOfMins << endl;
return 0;
}