📄 glist.cpp
字号:
#include<fstream.h>
template<class T>
class Node{
public:
T data;
Node<T> * next;
};
template <class T>
class Queue{
public:
Queue(){front=rear=0;}
~Queue();
bool Empty() const
{return ((front)?false:true);}
Queue<T>& EnQueue(const T& x);
Queue<T>& DeQueue(T& x);
Node<T> * rear;
Node<T> * front;
};
template<class T>
Queue<T>::~Queue()
{
Node<T> * next;
while(front){
next=front->next;
delete front;
front=next;
}
}
template<class T>
Queue<T>& Queue<T>::EnQueue(const T& x)
{
Node<T> *p=new Node <T>;
p->data=x;
p->next=0;
if (front) rear->next=p;
else front=p;
rear=p;
return * this;
}
template<class T>
Queue<T>& Queue<T>::DeQueue(T& x)
{
x=front->data;
Node<T> * p=front;
front=front->next;
delete p;
return * this;
}
main()
{
ifstream in("input.txt");
ofstream out("output.txt");
int m,n,a,b,x,l=0,max=0;
Queue<int> * L=new Queue<int>[100];
in>>n;
for(int i=0;i<n;i++)
{
in>>m;
for(int j=0;j<m;j++)
{
in>>a;
L[i].EnQueue(a);
max=max>a?max:a;
}
}
out<<max<<endl;
int c[100];
for(i=0;i<n;i++)
{
c[i]=0;
do{
L[i].DeQueue(x);
if(x>=0) c[i]+=x;
else c[i]+=c[-x-1];
}while(L[i].Empty()==0);
}
out<<c[n-1]<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -