import java.io.*;
import java.util.*;
public class PolynomialAddition
{
static Scanner inFile;
{
dataInpt
=new File("C:\\llpoly.txt"); inFile=new Scanner(dataInpt);
Node parent = new Node();
while (inFile.hasNextLine())
{
Node tempParent = parent;
line=inFile.nextLine();
while (myTokens.hasMoreTokens())
{
Node current = new Node();
String polyTerm
=myTokens.
nextToken();
current.value=polyTerm.substring(0,polyTerm.indexOf("x"));
current.value2=polyTerm.substring(polyTerm.indexOf("^")+1);
if(parent==null)
parent.value=current.value;
else
{
parent.next=current;
parent=current;
}
}
printList(tempParent.next);
}
}
public static void printList(Node head)
{
Node ptr; //not pointing anywhere
for(ptr=head;ptr!=null;ptr=ptr.next)
System.
out.
print(ptr.
value + " " + ptr.
value2 + " "); }
}
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEudXRpbC4qOwpwdWJsaWMgY2xhc3MgUG9seW5vbWlhbEFkZGl0aW9uCnsKICAgIHN0YXRpYyBGaWxlIGRhdGFJbnB0OwogICAgc3RhdGljIFNjYW5uZXIgaW5GaWxlOwoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbgogICAgewogICAgICBkYXRhSW5wdD1uZXcgRmlsZSgiQzpcXGxscG9seS50eHQiKTsKICAgICAgaW5GaWxlPW5ldyBTY2FubmVyKGRhdGFJbnB0KTsKICAgICAgU3RyaW5nVG9rZW5pemVyIG15VG9rZW5zOwogICAgICBTdHJpbmcgbGluZSwgc2VudGVuY2U7CiAgICAgIE5vZGUgcGFyZW50ID0gbmV3IE5vZGUoKTsKICAgICAgd2hpbGUgKGluRmlsZS5oYXNOZXh0TGluZSgpKQogICAgICB7CiAgICAgICAgTm9kZSB0ZW1wUGFyZW50ID0gcGFyZW50OwogICAgICAgIGxpbmU9aW5GaWxlLm5leHRMaW5lKCk7CiAgICAgICAgbXlUb2tlbnM9bmV3IFN0cmluZ1Rva2VuaXplcihsaW5lKTsKICAgICAgICB3aGlsZSAobXlUb2tlbnMuaGFzTW9yZVRva2VucygpKQogICAgICAgIHsKICAgICAgICAgIE5vZGUgY3VycmVudCA9IG5ldyBOb2RlKCk7CiAgICAgICAgICBTdHJpbmcgcG9seVRlcm09bXlUb2tlbnMubmV4dFRva2VuKCk7CgogICAgICAgICAgY3VycmVudC52YWx1ZT1wb2x5VGVybS5zdWJzdHJpbmcoMCxwb2x5VGVybS5pbmRleE9mKCJ4IikpOwogICAgICAgICAgY3VycmVudC52YWx1ZTI9cG9seVRlcm0uc3Vic3RyaW5nKHBvbHlUZXJtLmluZGV4T2YoIl4iKSsxKTsKCiAgICAgICAgICBpZihwYXJlbnQ9PW51bGwpCiAgICAgICAgICAgIHBhcmVudC52YWx1ZT1jdXJyZW50LnZhbHVlOwogICAgICAgICAgZWxzZQogICAgICAgICAgewogICAgICAgICAgICBwYXJlbnQubmV4dD1jdXJyZW50OwogICAgICAgICAgICBwYXJlbnQ9Y3VycmVudDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcHJpbnRMaXN0KHRlbXBQYXJlbnQubmV4dCk7CiAgICAgIH0KICAgIH0KICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludExpc3QoTm9kZSBoZWFkKQogICAgewogICAgCU5vZGUgcHRyOyAvL25vdCBwb2ludGluZyBhbnl3aGVyZQogICAgCWZvcihwdHI9aGVhZDtwdHIhPW51bGw7cHRyPXB0ci5uZXh0KQogICAgCSAgU3lzdGVtLm91dC5wcmludChwdHIudmFsdWUgKyAiICAiICsgcHRyLnZhbHVlMiArICIgICIpOwogICAgCVN5c3RlbS5vdXQucHJpbnRsbigpOwogICAgfQp9