Решение задачи Выборы жрецов с Acmp

Без пояснения   Просмотров: 38


В стране Олимпиадии снова выборы.

Страна состоит из маленьких графств. Графства объединяются в конфедерации. Каждая конфедерация раз в год выбирает себе покровителя – одного из 200 жрецов. Этот ритуал называется Великими Перевыборами Жрецов и выглядит так: конфедерации одновременно подают заявления (одно от конфедерации) в Совет Жрецов о том, кого они хотели бы видеть своим покровителем (если заявление не подано, то считают, что конфедерация хочет оставить себе того же покровителя). После этого все заявки удовлетворяются. Если несколько конфедераций выбирают одного и того же Жреца, то они навсегда объединяются в одну. Таким образом, каждый Жрец всегда является покровителем не более чем одной конфедерации. Требуется написать программу, позволяющую Совету Жрецов выяснить номер Жреца-покровителя каждого графства после Великих Перевыборов. В Совете все графства занумерованы (начиная с 1). Все Жрецы занумерованы числами от 1 до 200 (некоторые из них сейчас могут не быть ничьими покровителями).

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, m, t1, t2;
    cin >> n;
    vector<int> a(n);
    map<int, int> b;
    for(int  i = 0; i < n; ++i)
        cin >> a[i];
    cin >> m;
    for(int i = 0; i < m; ++i){
        cin >> t1 >> t2;
        b[t1] = t2;
    }
    for(int i = 0; i < a.size(); ++i){
        if(b[a[i]])
            cout << b[a[i]];
        else
            cout << a[i];
        cout << " ";
    }
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться