- #include <bits/stdc++.h> 
-   
- using namespace std; 
-   
-   
- struct Node { 
-     int data; 
-     Node* next; 
-   
-   
- }; 
-   
-   
- int sumOfAbsoluteDifferences(Node* root) { 
-     if (!root || !root->next) { 
-   
-         return 0; 
-     } 
-   
-     int sum = 0; 
-     Node* current = root; 
-   
-   
-     while (current && current->next) { 
-         sum += abs(current->data - current->next->data); 
-         current = current->next->next; 
-     } 
-   
-     return sum; 
- } 
-   
-   
- void appendNode(Node*& root, int value) { 
-     if (!root) { 
-         root = new Node(); 
-         return; 
-     } 
-   
-     Node* current = root; 
-     while (current->next) { 
-         current = current->next; 
-     } 
-     current->next = new Node(); 
- } 
-   
-   
- void print(Node* root) { 
-     Node* current = root; 
-     while (current) { 
-         cout << current->data << " "; 
-         current = current->next; 
-     } 
-     cout << endl; 
- } 
-   
-   
- int main() { 
-     Node* root= NULL; 
-   
-   
-     appendNode(root, 10); 
-     appendNode(root, 20); 
-     appendNode(root, 15); 
-     appendNode(root, 5); 
-   
-   
-     cout << "Linked list: "; 
-     print(root); 
-   
-   
-     int result = sumOfAbsoluteDifferences(root); 
-     cout << "Sum of absolute differences: " << result << endl; 
-   
-     return 0; 
- } 
-   
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCnN0cnVjdCBOb2RlIHsKICAgIGludCBkYXRhOwogICAgTm9kZSogbmV4dDsKCiAgICAKfTsKCgppbnQgc3VtT2ZBYnNvbHV0ZURpZmZlcmVuY2VzKE5vZGUqIHJvb3QpIHsKICAgIGlmICghcm9vdCB8fCAhcm9vdC0+bmV4dCkgewogICAgICAgIAogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIGludCBzdW0gPSAwOwogICAgTm9kZSogY3VycmVudCA9IHJvb3Q7CgogICAKICAgIHdoaWxlIChjdXJyZW50ICYmIGN1cnJlbnQtPm5leHQpIHsKICAgICAgICBzdW0gKz0gYWJzKGN1cnJlbnQtPmRhdGEgLSBjdXJyZW50LT5uZXh0LT5kYXRhKTsKICAgICAgICBjdXJyZW50ID0gY3VycmVudC0+bmV4dC0+bmV4dDsKICAgIH0KCiAgICByZXR1cm4gc3VtOwp9CgoKdm9pZCBhcHBlbmROb2RlKE5vZGUqJiByb290LCBpbnQgdmFsdWUpIHsKICAgIGlmICghcm9vdCkgewogICAgICAgIHJvb3QgPSBuZXcgTm9kZSgpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBOb2RlKiBjdXJyZW50ID0gcm9vdDsKICAgIHdoaWxlIChjdXJyZW50LT5uZXh0KSB7CiAgICAgICAgY3VycmVudCA9IGN1cnJlbnQtPm5leHQ7CiAgICB9CiAgICBjdXJyZW50LT5uZXh0ID0gbmV3IE5vZGUoKTsKfQoKCnZvaWQgcHJpbnQoTm9kZSogcm9vdCkgewogICAgTm9kZSogY3VycmVudCA9IHJvb3Q7CiAgICB3aGlsZSAoY3VycmVudCkgewogICAgICAgIGNvdXQgPDwgY3VycmVudC0+ZGF0YSA8PCAiICI7CiAgICAgICAgY3VycmVudCA9IGN1cnJlbnQtPm5leHQ7CiAgICB9CiAgICBjb3V0IDw8IGVuZGw7Cn0KCgppbnQgbWFpbigpIHsKICAgIE5vZGUqIHJvb3Q9IE5VTEw7CgogICAgCiAgICBhcHBlbmROb2RlKHJvb3QsIDEwKTsKICAgIGFwcGVuZE5vZGUocm9vdCwgMjApOwogICAgYXBwZW5kTm9kZShyb290LCAxNSk7CiAgICBhcHBlbmROb2RlKHJvb3QsIDUpOwoKICAgIAogICAgY291dCA8PCAiTGlua2VkIGxpc3Q6ICI7CiAgICBwcmludChyb290KTsKCiAKICAgIGludCByZXN1bHQgPSBzdW1PZkFic29sdXRlRGlmZmVyZW5jZXMocm9vdCk7CiAgICBjb3V0IDw8ICJTdW0gb2YgYWJzb2x1dGUgZGlmZmVyZW5jZXM6ICIgPDwgcmVzdWx0IDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K