#include using namespace std; vector size_bucket[10001]; int main(){ int n; cin>>n; vector size(n),deps(n); vector> edge(n); //V+E for (int i=0,d; i>size[i]>>d; for (int j=0; j>x; --x; edge[i].push_back(x); ++deps[x]; } size_bucket[size[i]].push_back(i); ++deps[i]; } //W vector by_size; for (auto i: size_bucket) for (auto j: i) by_size.push_back(j); int limit=0; vector todo; //V+E for (int i=0,j=0; i