#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* t = head; t; t = t->next)
cout << t->data << " ";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgTm9kZSB7CiAgICBpbnQgZGF0YTsKICAgIE5vZGUqIHByZXY7CiAgICBOb2RlKiBuZXh0Owp9OwoKaW50IG1haW4oKSB7CiAgICBOb2RlKiBoZWFkID0gbmV3IE5vZGV7MTAsIE5VTEwsIE5VTEx9OwogICAgaGVhZC0+bmV4dCA9IG5ldyBOb2RlezIwLCBoZWFkLCBOVUxMfTsKICAgIGhlYWQtPm5leHQtPm5leHQgPSBuZXcgTm9kZXszMCwgaGVhZC0+bmV4dCwgTlVMTH07CiAgICBoZWFkLT5uZXh0LT5uZXh0LT5uZXh0ID0gbmV3IE5vZGV7NDAsIGhlYWQtPm5leHQtPm5leHQsIE5VTEx9OwoKICAgIGludCBwb3MgPSAyLCB2YWx1ZSA9IDI1OwoKICAgIE5vZGUqIHRlbXAgPSBoZWFkOwogICAgZm9yKGludCBpID0gMDsgaSA8IHBvcy0xOyBpKyspewogICAgICAgIHRlbXAgPSB0ZW1wLT5uZXh0OwogICAgfQoKICAgIE5vZGUqIG5ld05vZGUgPSBuZXcgTm9kZXt2YWx1ZSwgdGVtcCwgdGVtcC0+bmV4dH07CiAgICBpZih0ZW1wLT5uZXh0KSB0ZW1wLT5uZXh0LT5wcmV2ID0gbmV3Tm9kZTsKICAgIHRlbXAtPm5leHQgPSBuZXdOb2RlOwoKICAgIGZvcihOb2RlKiB0ID0gaGVhZDsgdDsgdCA9IHQtPm5leHQpCiAgICAgICAgY291dCA8PCB0LT5kYXRhIDw8ICIgIjsKCiAgICByZXR1cm4gMDsKfQo=