// No.647 明太子 // https://yukicoder.me/problems/no/647 // #include #include #include #include using namespace std; int main() { cin.tie(nullptr); // メンバーの購入条件を設定 int N; cin >> N; vector> criteria; for (auto i = 0; i < N; ++i) { int A, B; cin >> A >> B; criteria.emplace_back(make_pair(A, B)); } // 明太子の価格と辛さを確認 int M; cin >> M; vector> mentaiko; for (auto i = 0; i < M; ++i) { int X, Y; cin >> X >> Y; mentaiko.emplace_back(make_pair(X, Y)); } // メンバごとに条件にマッチする明太子を購入 vector votes(M+1, 0); for (auto i = 0; i < N; ++i) { for (auto j = 0; j < M; ++j) { if (mentaiko[j].first <= criteria[i].first && mentaiko[j].second >= criteria[i].second) ++votes[j]; } } int votes_max = *max_element(votes.begin(), votes.end()); // 奇跡の明太子の購入者数 if (votes_max == 0) { cout << 0 << endl; } else { for (auto i = 0; i < M; ++i) { if (votes[i] == votes_max) cout << i + 1 << endl; // 0起算なので+1して出力 } } }