#include<cstdio>
using namespace std;
typedef struct
{
int x;
int y;
}Node;
typedef struct
{
Node data[1005];
int length;
}SqList;
void init(SqList &a);
void input(SqList &a);
void add(SqList a, SqList b, SqList &c);
void output(SqList a);
int main()
{
SqList a,b,c;
init(a);
init(b);
init(c);
input(a);
input(b);
add(a, b, c);
output(c);
return 0;
}
void init(SqList &a)
{
a.length=0;
}
void input(SqList &a)
{
cin>>a.length;
for(int i=1; i<=a.length; i++)
{
cin>>a.data[i].x>>a.data[i].y;
}
}
void output(SqList a)
{
if(a.data[1].x==0)
cout<<"0"<<" "<<"0";
else
for(int i=1; i<=a.length; i++)
{
cout<<a.data[i].x<<" "<<a.data[i].y;
if(i<a.length) cout<<" ";
}
}
void add(SqList a, SqList b, SqList &c)
{
int i=1,j=1,k=1;
while(i<=a.length && j<=b.length)
{
if(a.data[i].y > b.data[j].y)
{
c.data[k].y=a.data[i].y;
c.data[k].x=a.data[i].x;
i++;
}
else if(a.data[i].y == b.data[j].y)
{
if(a.data[i].x + b.data[j].x != 0)
{
c.data[k].x=a.data[i].x + b.data[j].x;
c.data[k].y=a.data[i].y;
i++; j++;
}
else if(a.data[i].x + b.data[j].x == 0)
{
i++; j++;
continue;
}
}
else if(a.data[i].y < b.data[j].y)
{
c.data[k].y=b.data[j].y;
c.data[k].x=b.data[j].x;
j++;
}
k++; c.length++;
}
if(i>a.length)
{
while(j<=b.length)
{
c.data[k].x=b.data[j].x;
c.data[k].y=b.data[j].y;
k++; j++; c.length++;
}
}
else
while(i<=a.length)
{
c.data[k].x=a.data[i].x;
c.data[k].y=a.data[i].y;
k++; i++; c.length++;
}
}
#include<iostream>
using namespace std;
struct Node{
int data;
Node*next;
};
void rearcreat(Node*L)//尾插法
{
Node*r;
r=L;
int x;
int y,count=0;
cin>>x;
y=x;
while(x!=-1)
{
if(count==0)
{
Node*s,*q;
s=new Node;
s->data=x;
s->next=nullptr;
r->next=s;
r=s;
cin>>x;
}else
{
if(y==x)
{
cin>>x;
continue;
}
Node*s,*q;
s=new Node;
s->data=x;
s->next=nullptr;
r->next=s;
r=s;
y=x;
cin>>x;
}
//构建的时候去重
count++;
}
r->next=nullptr;
// while()
}
void display(Node*L3)
{
L3=L3->next;
while(L3!=nullptr)
{
if(L3->next==nullptr)
{
cout<<L3->data;
break;
}
cout<<L3->data<<" ";
L3=L3->next;
}
}
int main()
{
Node*L1;
L1=new Node;
L1->next=nullptr;
rearcreat(L1);
Node*L2;
L2=new Node;
L2->next=nullptr;
rearcreat(L2);
Node*L3;
L3=new Node;
L3->next=nullptr;
if(L1->next==nullptr&&L2->next==nullptr)
{
cout<<"NULL";
return 0;
}
Node*r;
r=L3;
L1=L1->next;
L2=L2->next;
while((L1!=nullptr)&&(L2!=nullptr))//两个链表都不为空
{
if(L1->data>L2->data)
{
r->next=L2;
L2=L2->next;
}
else if(L1->data<L2->data)
{
r->next=L1;
L1=L1->next;
}else if(L1->data==L2->data)
{
r->next=L1;
L1=L1->next;
L2=L2->next;
}
r=r->next;
r->next=nullptr;
}
if(L1==nullptr&&L2!=nullptr)//s1空了,填s2
{
r->next=L2;
}else if(L2==nullptr&&L1!=nullptr)
{
r->next=L1;
}
display(L3);
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int n;
int x;
cin>>n;
int a[n+1];
int k;
for(k=0;k<n;k++)
{
cin>>a[k];
}
cin>>a[n];
for(int i=0;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
int temp=0;
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int p=0;p<n+1;p++)
{
if(p==n)
{
cout<<a[n];
break;
}
if(a[p]!=a[p+1])
{
cout<<a[p]<<" ";
}else{
}
}
return 0;
}