#include <iostream>
#include <vector>
using namespace std;
using ll = long long;
vector<vector<pair<int, bool>>> parent; // parent[dzien][numer spotkania]={parent, odwiedzono?}
int n1, k;
int odp = 0;
void odhacz(int dzien, int spotkanie)
{
if (parent[dzien][spotkanie].first == 0)
{
odp++;
parent[dzien][spotkanie].second = 1;
return;
}
if (parent[dzien][spotkanie].second == 0)
{
parent[dzien][spotkanie].second = 1;
odhacz(dzien - 1, parent[dzien][spotkanie].first);
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> k >> n1;
parent.push_back({{-1,1}});
for (int i = 0; i < n1; i++)
{
parent[0].push_back({0, 0});
}
int in,c;
for (int i = 1; i < k; i++)
{
cin>>c;
parent.push_back({{-1,1}});
for(int j=0;j<c; j ++)
{
cin>>in;
parent[i].push_back({in,0});
}
}
for(int i =parent.size()-1; i >0; i --)
{
for(int j=1;j<parent[i].size();j++)
{
if(parent[i][j].second==0){odhacz(i,j);}
}
}
cout<<odp;
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 | #include <iostream> #include <vector> using namespace std; using ll = long long; vector<vector<pair<int, bool>>> parent; // parent[dzien][numer spotkania]={parent, odwiedzono?} int n1, k; int odp = 0; void odhacz(int dzien, int spotkanie) { if (parent[dzien][spotkanie].first == 0) { odp++; parent[dzien][spotkanie].second = 1; return; } if (parent[dzien][spotkanie].second == 0) { parent[dzien][spotkanie].second = 1; odhacz(dzien - 1, parent[dzien][spotkanie].first); } } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> k >> n1; parent.push_back({{-1,1}}); for (int i = 0; i < n1; i++) { parent[0].push_back({0, 0}); } int in,c; for (int i = 1; i < k; i++) { cin>>c; parent.push_back({{-1,1}}); for(int j=0;j<c; j ++) { cin>>in; parent[i].push_back({in,0}); } } for(int i =parent.size()-1; i >0; i --) { for(int j=1;j<parent[i].size();j++) { if(parent[i][j].second==0){odhacz(i,j);} } } cout<<odp; return 0; } |
English