using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Sockets;
using System.Reflection.Emit;
namespace MyApp
{
///****************************(Classes)********************************/
class polyNode
{
public int coff;
public int ex;
public polyNode next;
public polyNode(int co, int e)
{
next = null;
coff = co;
ex = e;
}
}
class Polynomial
{
public polyNode head;
public
void add_term
(int coff
, int exp) {
polyNode p
= new polyNode
(coff
, exp); if (head
== null || head.
ex < exp) {
p.next = head;
head = p;
return;
}
polyNode tmp = head;
while(tmp.
next != null && tmp.
next.
ex > exp) {
tmp = tmp.next;
}
if(tmp.
next != null && tmp.
next.
ex == exp) {
tmp.next.coff += coff;
return;
}
p.next = tmp.next;
tmp.next = p;
}
}
class Add
{
private Polynomial result = new Polynomial();
public Add(Polynomial p1, Polynomial p2)
{
polyNode tmp1 = p1.head , tmp2 = p2.head;
while (tmp1 != null || tmp2 != null)
{
if (tmp1 == null)
{
result.add_term(tmp2.coff, tmp2.ex);
tmp2 = tmp2.next;
}
else if (tmp2 == null)
{
result.add_term(tmp1.coff, tmp1.ex);
tmp1 = tmp1.next;
}
else if (tmp1.ex == tmp2.ex)
{
int ncoff = tmp1.coff + tmp2.coff;
result.add_term(ncoff, tmp1.ex);
tmp1 = tmp1.next;
tmp2 = tmp2.next;
}
else if (tmp1.ex > tmp2.ex)
{
result.add_term(tmp1.coff, tmp1.ex);
tmp1 = tmp1.next;
}
else
{
result.add_term(tmp2.coff, tmp2.ex);
tmp2 = tmp2.next;
}
}
}
public void display()
{
polyNode tmp = result.head;
if (tmp == null)
{
Console.WriteLine("Empty");
return;
}
while (tmp != null)
{
Console.Write("{0}x^{1} ", tmp.coff, tmp.ex);
tmp = tmp.next;
if (tmp != null)
{
Console.Write("+ ");
}
}
}
}
/********************************************************************/
internal class Program
{
///-----------------------(funcoins )--------------------------------/
//------------------------------------------------------------------------/
static void Main()
{
Polynomial p1 = new Polynomial();
p1.add_term(2, 3);
p1.add_term(3, 2);
p1.add_term(4, 1);
Polynomial p2 = new Polynomial();
p2.add_term(2, 0);
p2.add_term(3, 5);
p2.add_term(7, 1);
Add add = new Add(p1, p2);
add.display();
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkRpYWdub3N0aWNzOwp1c2luZyBTeXN0ZW0uTmV0LlNvY2tldHM7CnVzaW5nIFN5c3RlbS5SZWZsZWN0aW9uLkVtaXQ7CgoKbmFtZXNwYWNlIE15QXBwCnsKICAgIC8vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiooQ2xhc3NlcykqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAgIGNsYXNzIHBvbHlOb2RlCiAgICB7CiAgICAgICAgcHVibGljIGludCBjb2ZmOwogICAgICAgIHB1YmxpYyBpbnQgZXg7CiAgICAgICAgcHVibGljIHBvbHlOb2RlIG5leHQ7CgogICAgICAgIHB1YmxpYyBwb2x5Tm9kZShpbnQgY28sIGludCBlKQogICAgICAgIHsKICAgICAgICAgICAgbmV4dCA9IG51bGw7CiAgICAgICAgICAgIGNvZmYgPSBjbzsKICAgICAgICAgICAgZXggPSBlOwogICAgICAgIH0KICAgIH0KCiAgICBjbGFzcyBQb2x5bm9taWFsCiAgICB7CiAgICAgICAgcHVibGljIHBvbHlOb2RlIGhlYWQ7CgogICAgICAgIHB1YmxpYyB2b2lkIGFkZF90ZXJtKGludCBjb2ZmLCBpbnQgZXhwKQogICAgICAgIHsKICAgICAgICAgICAgcG9seU5vZGUgcCA9IG5ldyBwb2x5Tm9kZShjb2ZmLCBleHApOwogICAgICAgICAgICBpZiAoaGVhZCA9PSBudWxsIHx8IGhlYWQuZXggPCBleHApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHAubmV4dCA9IGhlYWQ7CiAgICAgICAgICAgICAgICBoZWFkID0gcDsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBwb2x5Tm9kZSB0bXAgPSBoZWFkOwogICAgICAgICAgICB3aGlsZSh0bXAubmV4dCAhPSBudWxsICYmIHRtcC5uZXh0LmV4ID4gZXhwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0bXAgPSB0bXAubmV4dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZih0bXAubmV4dCAhPSBudWxsICYmIHRtcC5uZXh0LmV4ID09IGV4cCkgCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHRtcC5uZXh0LmNvZmYgKz0gY29mZjsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBwLm5leHQgPSB0bXAubmV4dDsKICAgICAgICAgICAgdG1wLm5leHQgPSBwOwogICAgICAgIH0KICAgIH0KCiAgICBjbGFzcyBBZGQKICAgIHsKICAgICAgICBwcml2YXRlIFBvbHlub21pYWwgcmVzdWx0ID0gbmV3IFBvbHlub21pYWwoKTsKCiAgICAgICAgcHVibGljIEFkZChQb2x5bm9taWFsIHAxLCBQb2x5bm9taWFsIHAyKQogICAgICAgIHsKICAgICAgICAgICAgcG9seU5vZGUgdG1wMSA9IHAxLmhlYWQgLCB0bXAyID0gcDIuaGVhZDsKICAgICAgICAgICAgd2hpbGUgKHRtcDEgIT0gbnVsbCB8fCB0bXAyICE9IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICh0bXAxID09IG51bGwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZF90ZXJtKHRtcDIuY29mZiwgdG1wMi5leCk7CiAgICAgICAgICAgICAgICAgICAgdG1wMiA9IHRtcDIubmV4dDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRtcDIgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkX3Rlcm0odG1wMS5jb2ZmLCB0bXAxLmV4KTsKICAgICAgICAgICAgICAgICAgICB0bXAxID0gdG1wMS5uZXh0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZiAodG1wMS5leCA9PSB0bXAyLmV4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGludCBuY29mZiA9IHRtcDEuY29mZiArIHRtcDIuY29mZjsKICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkX3Rlcm0obmNvZmYsIHRtcDEuZXgpOwogICAgICAgICAgICAgICAgICAgIHRtcDEgPSB0bXAxLm5leHQ7CiAgICAgICAgICAgICAgICAgICAgdG1wMiA9IHRtcDIubmV4dDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRtcDEuZXggPiB0bXAyLmV4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGRfdGVybSh0bXAxLmNvZmYsIHRtcDEuZXgpOwogICAgICAgICAgICAgICAgICAgIHRtcDEgPSB0bXAxLm5leHQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZF90ZXJtKHRtcDIuY29mZiwgdG1wMi5leCk7CiAgICAgICAgICAgICAgICAgICAgdG1wMiA9IHRtcDIubmV4dDsKCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHB1YmxpYyB2b2lkIGRpc3BsYXkoKQogICAgICAgIHsKICAgICAgICAgICAgcG9seU5vZGUgdG1wID0gcmVzdWx0LmhlYWQ7CiAgICAgICAgICAgIGlmICh0bXAgPT0gbnVsbCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkVtcHR5Iik7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgd2hpbGUgKHRtcCAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlKCJ7MH14XnsxfSAiLCB0bXAuY29mZiwgdG1wLmV4KTsKICAgICAgICAgICAgICAgIHRtcCA9IHRtcC5uZXh0OwogICAgICAgICAgICAgICAgaWYgKHRtcCAhPSBudWxsKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGUoIisgIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICBpbnRlcm5hbCBjbGFzcyBQcm9ncmFtCiAgICB7CgogICAgICAgIC8vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKGZ1bmNvaW5zICktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8KCgogICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLwoKICAgICAgICBzdGF0aWMgdm9pZCBNYWluKCkKICAgICAgICB7CiAgICAgICAgICAgIFBvbHlub21pYWwgcDEgPSBuZXcgUG9seW5vbWlhbCgpOwogICAgICAgICAgICBwMS5hZGRfdGVybSgyLCAzKTsKICAgICAgICAgICAgcDEuYWRkX3Rlcm0oMywgMik7CiAgICAgICAgICAgIHAxLmFkZF90ZXJtKDQsIDEpOwogICAgICAgICAgICBQb2x5bm9taWFsIHAyID0gbmV3IFBvbHlub21pYWwoKTsKICAgICAgICAgICAgcDIuYWRkX3Rlcm0oMiwgMCk7CiAgICAgICAgICAgIHAyLmFkZF90ZXJtKDMsIDUpOwogICAgICAgICAgICBwMi5hZGRfdGVybSg3LCAxKTsKICAgICAgICAgICAgQWRkIGFkZCA9IG5ldyBBZGQocDEsIHAyKTsKICAgICAgICAgICAgYWRkLmRpc3BsYXkoKTsKICAgICAgICB9CgogICAgfQp9Cgo=