#include "bits/stdc++.h"
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int dni, n0, konfNum, konf;
int max_agenci = 0;
vector<vector<int>> konferencje;
vector<int> liczba_konf;
cin >> dni >> n0;
liczba_konf.push_back(n0);
vector<int> plan0;
for(int j=0; j<n0; j++) {
plan0.push_back(0);
}
konferencje.push_back(plan0);
for(int i=1; i<dni; i++) {
cin >> konfNum;
liczba_konf.push_back(konfNum);
vector<int> plan;
for(int j=0; j<konfNum; j++) {
cin >> konf;
plan.push_back(konf);
}
konferencje.push_back(plan);
}
//////////////////////////
unordered_map<int, int> relacje1, relacje2;
unordered_map<int,int>* relacje = &relacje1;
unordered_map<int,int>* relacje_wczoraj = &relacje2;
for(int i=konferencje.size()-1; i>=0; i--) {
vector<int> dzisiaj = konferencje[i];
int agenci_na_dzien = 0;
for(int j=1; j<=liczba_konf[i]; j++) {
if(relacje->operator[](j) == 0) {
agenci_na_dzien++;
} else {
agenci_na_dzien += relacje->operator[](j);
}
if(dzisiaj[j-1] != 0) {
relacje_wczoraj->operator[](dzisiaj[j-1]) += max(1,relacje->operator[](j));
}
}
if(max_agenci < agenci_na_dzien) {
max_agenci = agenci_na_dzien;
}
swap(relacje, relacje_wczoraj);
relacje_wczoraj->clear();
}
cout<<max_agenci;
return 0;
}
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 68 69 70 71 72 | #include "bits/stdc++.h" using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int dni, n0, konfNum, konf; int max_agenci = 0; vector<vector<int>> konferencje; vector<int> liczba_konf; cin >> dni >> n0; liczba_konf.push_back(n0); vector<int> plan0; for(int j=0; j<n0; j++) { plan0.push_back(0); } konferencje.push_back(plan0); for(int i=1; i<dni; i++) { cin >> konfNum; liczba_konf.push_back(konfNum); vector<int> plan; for(int j=0; j<konfNum; j++) { cin >> konf; plan.push_back(konf); } konferencje.push_back(plan); } ////////////////////////// unordered_map<int, int> relacje1, relacje2; unordered_map<int,int>* relacje = &relacje1; unordered_map<int,int>* relacje_wczoraj = &relacje2; for(int i=konferencje.size()-1; i>=0; i--) { vector<int> dzisiaj = konferencje[i]; int agenci_na_dzien = 0; for(int j=1; j<=liczba_konf[i]; j++) { if(relacje->operator[](j) == 0) { agenci_na_dzien++; } else { agenci_na_dzien += relacje->operator[](j); } if(dzisiaj[j-1] != 0) { relacje_wczoraj->operator[](dzisiaj[j-1]) += max(1,relacje->operator[](j)); } } if(max_agenci < agenci_na_dzien) { max_agenci = agenci_na_dzien; } swap(relacje, relacje_wczoraj); relacje_wczoraj->clear(); } cout<<max_agenci; return 0; } |
English