vector սկզբնական արժեքներով
Երբ հայտարարում ենք vector զանգված, հնարավոր է սկզբնական արժեքներ տալ դրա էլեմենտներին։ Այսինքն կարելի է հենց սկզբից ունենալ n չափ ունեցող զանգված, որում բոլոր էլեմենտները լինեն օրինակ -1 կամ օրինակ 6.7։ Դա կարող ենք անել vector-ի չափը նշելուց հետո սկզբնական արժեք փոխանցելով՝
vector <double> d(5, 6.7); // [6.7, 6.7, 6.7, 6.7, 6.7]
vector <long long> ll(3, -100); // [-100, -100, -100]
vector <char> c(4, 'p'); // ['p', 'p', 'p', 'p']
vector <string> s(2, "hello"); // ["hello", "hello"]Սա կարող է հարմար լինել հատկապես երբ սկզբնական արժեքները պետք է ինչ-որ ֆիքսված թիվ լինեն (օրինակ՝ -1 կամ 0)։ vector-ը եթե չի ստանում ոչ-մի սկզբնական արժեք զանգվածի չափի հետ միասին, ապա այդ բոլոր արժեքներին վերագրում է 0։ Այսինքն տարբերություն չկա գրել vector <int> a(100, 0); թե vector <int> a(100);
Վարժություն՝
1-ից n թվերը շարված են իրար կողք։ Այդ շարքի վրա տեղի են ունենում q հատ փոփոխություն։ Ամեն փոփոխություն իրենից ներկայացնում է մի գործողություն, որը տանում է սլաք a թվից դեպի b թիվ, այդպիսով դարձնելով b-ն a-ի «ծնողը»: Այսինքն օրինակ եթե 5ից կա սլաք դեքպի 2, ապա 2-ը 5-ի «ծնողն» է։
Սկզբում ոչ մի թիվ ծնող չունի։ Երաշխավորվում է, որ թվերի զույգերը չունեն կրկնություններ և նույն թիվը չի կարող ունենալ մեկից ավելի «ծնող»։ Այսինքն՝ որպես ժառանգ, թիվը կարող է հայտնվել միայն մի անգամ։
Մուտքի առաջին տողում տրված է n ամբողջ թիվը (1 ≤ n ≤ )։
Մուտքի երկրորդ տողում տրված է m ամբողջ թիվը (1 ≤ m ≤ n), որին հաջորդում են m տողեր։ Ամեն տողում գրված է երկու թիվ a և b, որը b-ն դարձնում է a-ի «ծնող»։
Ելքում անհրաժեշտ է տպել n տող, որից յուրաքանչյուրում գրված լինի այդ թվի «տոհմածառը»։
Մուտք | Ելք |
|---|---|
5 | 1 2 5 |
Բացատրություն՝

Constraints
Time limit: 0.4 seconds
Memory limit: 512 MB
Output limit: 5 MB