1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//  pra.cpp
//  version 1
//
//  Autor: Jakub Chmist
//  Utworzony 22.11.2017.

#include<iostream>
//#include<cstdlib>
//#include<cmath>
//#include <set>
#include <vector>
#include <algorithm>
//#include <iterator>

using namespace std;

vector <int> t_pomiary;
vector < vector <int> > t_analiza;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n, m; //n - ilosc pomiarow, m - ilosc dzieci w klasie

    vector<pair<int, int>> t_zmiany;

    cin >> n >> m;

    int pomiar;
    //Wczytuje pomiary
    for (int i = 0; i < n; i++){
        cin >> pomiar;
        t_pomiary.push_back(pomiar);
    }
    pomiar = 1; //nr pierwszego ucznia
    t_pomiary.push_back(pomiar);

    int nr_pomiaru, wartosc;
    //Wczytuje zmiany do wektora par
    for ( int i = 0; i < m - 1; ++i ){
        cin >> nr_pomiaru >> wartosc;
        t_zmiany.push_back(make_pair(nr_pomiaru, wartosc));
    }

    //Wypelniam kontener z wszystkimi wynikami i nr ucznia na koncu
    //dla pierwszego ucznia
    t_analiza.push_back(t_pomiary);
    //dla pozostalych uczniow
    for (int j = 1; j < m; j++){
        t_pomiary[t_zmiany[j-1].first - 1] = t_zmiany[j-1].second;
        t_pomiary[n] = j + 1;
        t_analiza.push_back(t_pomiary);
    }

    //Sortuje wektor wektorow
    sort (t_analiza.begin(), t_analiza.end());

    //Wypisuje ostatnie pole (nr ucznia) z posortowanego wektora wektorow
    for (int i = 0; i < m; i++){
        cout << t_analiza[i][n] << " ";
    }
    cout << "\n";

    return 0;
}