알고리즘/백준

백준 10689 Hamza

등반 2021. 12. 27. 00:59

https://www.acmicpc.net/problem/10689

 

10689번: Hamza

Hamza Darwish (AKA cpphamza) (an ICPC world finalist who participated in the 2006 ICPC in Texas and the 2008 ICPC in Banff, a previous software engineer at IBM and a current one at imo.im) decided one day with his coach Mohamed Mahmoud Abd El-Wahab (AKA fe

www.acmicpc.net

문제 해설

각 테스트 케이스마다

문제 수가 주어지고

문제마다 문제가 속한 카테고리가 주어진다.

 

주인공은 첫 문제부터 문제를 푸는데, 등장하는 모든 카테고리별로 적어도 한 문제씩은 풀려고 한다.

조건을 만족하는 경우 중 가장 작은 문제의 번호를 구하자.

 

모든 문제를 순회하며, 카테고리별로 가장 처음 나타난 인덱스를 기록하고

기록한 인덱스들을 지나간다면 카테고리별로 모든 문제를 풀게 된다.

결국 기록한 인덱스 중 가장 큰 인덱스가 정답이 된다.

 

#include <iostream>
#define fio cin.tie(0)->sync_with_stdio(0)
using namespace std;

#include <map>
int main(){
    fio;
    int T; cin >> T;
    for(int t = 1; t <= T; t++){
        int N; cin >> N;
        map<int, int> map_;
        for(int i=1; i<=N; i++){
            int tmp; cin >> tmp;
            if(map_.find(tmp) == map_.end()){
                map_[tmp] = i;
            }
        }
        //
        int ans = 0;
        map<int, int>::iterator iter;
        for(iter = map_.begin(); iter!=map_.end(); iter++){
            ans = max(ans, (*iter).second);
        }
        cout <<"Case "<<t<<": "<<ans<<'\n';
    }

    return 0;
}

'알고리즘 > 백준' 카테고리의 다른 글

백준 11235 Polling  (0) 2021.12.27
백준 11116 교통량  (0) 2021.12.27
백준 10527 Judging Troubles  (0) 2021.12.27
백준 9733 꿀벌  (0) 2021.12.27
백준 8641 Sklep  (0) 2021.12.27