#include <bits/stdc++.h>
using namespace std;
struct Node {
int data;
Node* prev;
Node* next;
};
int main() {
Node* head = new Node{10, NULL, NULL};
head->next = new Node{20, head, NULL};
head->next->next = new Node{30, head->next, NULL};
head->next->next->next = new Node{40, head->next->next, NULL};
int pos = 2, value = 25;
Node* temp = head;
for(int i = 0; i < pos-1; i++)
temp = temp->next;
Node* newNode = new Node{value, temp, temp->next};
if(temp->next) temp->next->prev = newNode;
temp->next = newNode;
for(Node* temp = head; temp; temp = temp->next)
cout << temp->data << " ";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgTm9kZSB7CiAgICBpbnQgZGF0YTsKICAgIE5vZGUqIHByZXY7CiAgICBOb2RlKiBuZXh0Owp9OwoKaW50IG1haW4oKSB7CiAgICBOb2RlKiBoZWFkID0gbmV3IE5vZGV7MTAsIE5VTEwsIE5VTEx9OwogICAgaGVhZC0+bmV4dCA9IG5ldyBOb2RlezIwLCBoZWFkLCBOVUxMfTsKICAgIGhlYWQtPm5leHQtPm5leHQgPSBuZXcgTm9kZXszMCwgaGVhZC0+bmV4dCwgTlVMTH07CiAgICBoZWFkLT5uZXh0LT5uZXh0LT5uZXh0ID0gbmV3IE5vZGV7NDAsIGhlYWQtPm5leHQtPm5leHQsIE5VTEx9OwoKICAgIGludCBwb3MgPSAyLCB2YWx1ZSA9IDI1OwoKICAgIE5vZGUqIHRlbXAgPSBoZWFkOwogICAgZm9yKGludCBpID0gMDsgaSA8IHBvcy0xOyBpKyspCiAgICAgICAgdGVtcCA9IHRlbXAtPm5leHQ7CgogICAgTm9kZSogbmV3Tm9kZSA9IG5ldyBOb2Rle3ZhbHVlLCB0ZW1wLCB0ZW1wLT5uZXh0fTsKICAgIGlmKHRlbXAtPm5leHQpIHRlbXAtPm5leHQtPnByZXYgPSBuZXdOb2RlOwogICAgdGVtcC0+bmV4dCA9IG5ld05vZGU7CgogICAgZm9yKE5vZGUqIHRlbXAgPSBoZWFkOyB0ZW1wOyB0ZW1wID0gdGVtcC0+bmV4dCkKICAgICAgICBjb3V0IDw8IHRlbXAtPmRhdGEgPDwgIiAiOwoKICAgIHJldHVybiAwOwp9Cg==