vector<vector> Երկչափ և բազմաչափ դինամիկ զանգվածներ
C++-ը շատ ճկուն է իր տիպերի մեջ և եթե հնարավորություն կա հայտարարելու vector< pair <int, int> >, ապա կա նաև հնարավորություն հայտարարելու զանգվածների զանգված, կամ այլ կերպ ասված երկչափ զանգված, կամ C++-ի լեզվով ասված՝
vector <int> one_dim;
vector< vector <int> > two_dim;
vector< vector< vector <int> > > three_dim;
...Բայց այստեղ պետք է ուշադիր լինել սկզբնական արժեքներ տալուց։ vector< vector <int> > two_dim նշանակում է որ մենք հայտարարում ենք զանգվածների զանգված։ Այսինքն զանգվածի ամեն էլեմենտ իրենից ներկայացնում է մի զանգված։ Այս դեպքում պետք է two_dim զանգվածին տալ համապատասխան սկզբնական արժեքներ՝
vector< vector <int> > two_dim;
// ավելացնել դատարկ զանգված
for (int i=0; i < 10; ++i)
two_dim.push_back({});
// Լրիվ նույն գործողությունը կարելի է անել նաև այսպես
// ավելացնել դատարկ զանգված
for (int i=0; i < 10; ++i)
two_dim.push_back(vector <int>());vector< vector <int> > two_dim(10, vector <int>());
vector< vector <int> > ones(10, vector <int>(10, 1));Տարբերակներից վերջինը բավական հարմար է, քանի որ այն հնարավորություն է տալիս հայտարարել զանգված և բոլոր սկզբնական արժեքները դարձնել 1։
Վարժություն՝
Տրված են n մարդ համարակալված 1-ից n, և m հատ թվազույգ , որոնք նկարագրում են թե ովքեր են իրար ծանոթ։ Օրինակ (3, 5) նշանակում է 3 համարի մարդը և 5 համարի մարդը իրար ճանաչում են։
Մուտքի առաջին տողում տրված են n ու m - ը ().
Անհրաժեշտ է ամեն մարդու համար տպել իր ծանոթ մարդկանց ցուցակը դասակարգված աճման կարգով
Մուտք | Ելք |
|---|---|
5 3 | 1: 2 |
Constraints
Time limit: 0.4 seconds
Memory limit: 512 MB
Output limit: 5 MB