Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- vector <vector<int>> data;
- vector <bool> visited;
- int n, m, k, place, artist, ans;
- int sum_row(vector<int>& vec){
- int s = 0;
- for (int i = 0; i < vec.size(); i++){
- s += vec[i];
- }
- return s;
- }
- // функция которая определяет куда должен попереться конкретный исполнитель
- int valid_place(int art){
- int vp = -1;
- int ms = 0;
- int ns;
- for (int i = 0; i < n; i++){
- ns = sum_row(data[i]);
- if (ns > ms && !visited[i] && data[i][art]){
- vp = i;
- ms = ns;
- }
- }
- return vp;
- }
- int main() {
- cin >> n >> m >> k;
- data.resize(n);
- for (int i = 0; i < n; i++){
- data[i].resize(m, 0);
- }
- for (int i = 0; i < k; i++){
- cin >> place >> artist;
- data[place - 1][artist - 1]++;
- }
- int vp;
- while (k > 0){
- visited.resize(n, 0);
- for (int d = 0; d < 3; d++){
- for (int i == 0; i < m; i++){
- vp = valid_place(i);
- if (vp != -1){
- data[vp][i]--;
- visited[vp] = 1;
- k --;
- }
- }
- }
- ans++;
- }
- cout << ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement