- #include <iostream> 
- using namespace std; 
-   
- struct elem 
- { 
- 	elem() : next(nullptr) {} 
- 	int info; 
- 	elem *next;	 
- }; 
-   
- void print(elem *ptr); 
- void vvod(elem *ptr); 
- void udalenie(elem *ptr); 
- void insert_end(elem *ptr, int a); 
-   
-   
- int main() 
- {	 
- 	elem *head = new elem;	 
- 	vvod(head); 
- 	udalenie(head); 
- 	cout << "NEW LIST" << endl; 
- 	print(head); 
- } 
-   
-   
- void vvod(elem *bashka) 
- { 
- 	int massiv[] = { 1,2,2,3,4,5,5,5,6,6,7,8,9 }; 
- 	bashka->info = massiv[0]; 
- 	for (int i = 1; i < sizeof(massiv) / sizeof(int); i++) 
- 		insert_end(bashka, massiv[i]); 
- } 
-   
- void udalenie(elem *spisok) 
- {	 
- 	while (spisok->next != nullptr) 
- 	{ 
- 		elem *nextelem = spisok->next; 
- 		if (spisok->info == nextelem->info) { 
- 			spisok->next = nextelem->next; 
- 			delete nextelem;			 
- 		} 
- 		else 
- 			spisok = nextelem; 
- 	} 
- } 
-   
- void insert_end(elem *bashka, int a) 
- { 
- 	elem *lastelem = bashka; 
- 	while (lastelem->next != nullptr) 
- 		lastelem = lastelem->next; 
- 	elem *nextelem = new elem;	 
- 	nextelem->info = a; 
- 	lastelem->next = nextelem; 
- } 
-   
- void print(elem *spisok) 
- {		 
- 	while (spisok != nullptr) 
- 	{ 
- 		cout << spisok->info << " "; 
- 		spisok = spisok->next; 
- 	} 
- 	cout << endl; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGVsZW0KewoJZWxlbSgpIDogbmV4dChudWxscHRyKSB7fQoJaW50IGluZm87CgllbGVtICpuZXh0OwkKfTsKCnZvaWQgcHJpbnQoZWxlbSAqcHRyKTsKdm9pZCB2dm9kKGVsZW0gKnB0cik7CnZvaWQgdWRhbGVuaWUoZWxlbSAqcHRyKTsKdm9pZCBpbnNlcnRfZW5kKGVsZW0gKnB0ciwgaW50IGEpOwoKCmludCBtYWluKCkKewkKCWVsZW0gKmhlYWQgPSBuZXcgZWxlbTsJCgl2dm9kKGhlYWQpOwoJdWRhbGVuaWUoaGVhZCk7Cgljb3V0IDw8ICJORVcgTElTVCIgPDwgZW5kbDsKCXByaW50KGhlYWQpOwp9CgoKdm9pZCB2dm9kKGVsZW0gKmJhc2hrYSkKewoJaW50IG1hc3NpdltdID0geyAxLDIsMiwzLDQsNSw1LDUsNiw2LDcsOCw5IH07CgliYXNoa2EtPmluZm8gPSBtYXNzaXZbMF07Cglmb3IgKGludCBpID0gMTsgaSA8IHNpemVvZihtYXNzaXYpIC8gc2l6ZW9mKGludCk7IGkrKykKCQlpbnNlcnRfZW5kKGJhc2hrYSwgbWFzc2l2W2ldKTsKfQoKdm9pZCB1ZGFsZW5pZShlbGVtICpzcGlzb2spCnsJCgl3aGlsZSAoc3Bpc29rLT5uZXh0ICE9IG51bGxwdHIpCgl7CgkJZWxlbSAqbmV4dGVsZW0gPSBzcGlzb2stPm5leHQ7CgkJaWYgKHNwaXNvay0+aW5mbyA9PSBuZXh0ZWxlbS0+aW5mbykgewoJCQlzcGlzb2stPm5leHQgPSBuZXh0ZWxlbS0+bmV4dDsKCQkJZGVsZXRlIG5leHRlbGVtOwkJCQoJCX0KCQllbHNlCgkJCXNwaXNvayA9IG5leHRlbGVtOwoJfQp9Cgp2b2lkIGluc2VydF9lbmQoZWxlbSAqYmFzaGthLCBpbnQgYSkKewoJZWxlbSAqbGFzdGVsZW0gPSBiYXNoa2E7Cgl3aGlsZSAobGFzdGVsZW0tPm5leHQgIT0gbnVsbHB0cikKCQlsYXN0ZWxlbSA9IGxhc3RlbGVtLT5uZXh0OwoJZWxlbSAqbmV4dGVsZW0gPSBuZXcgZWxlbTsJCgluZXh0ZWxlbS0+aW5mbyA9IGE7CglsYXN0ZWxlbS0+bmV4dCA9IG5leHRlbGVtOwp9Cgp2b2lkIHByaW50KGVsZW0gKnNwaXNvaykKewkJCgl3aGlsZSAoc3Bpc29rICE9IG51bGxwdHIpCgl7CgkJY291dCA8PCBzcGlzb2stPmluZm8gPDwgIiAiOwoJCXNwaXNvayA9IHNwaXNvay0+bmV4dDsKCX0KCWNvdXQgPDwgZW5kbDsKfQ==