📄 glist.cpp
字号:
#include <fstream.h>
#include <iostream.h>
template <class T>
class Queue{
public:
Queue(int max=10);
~Queue(){delete[]queue;}
Queue<T>&enqueue(const T&x);
Queue<T>&dequeue(T&x);
int bignum(int i,int j);
private:
int front;
int rear;
int maxsize;
int *queue;
};
template <class T>
Queue<T>::Queue(int max)
{ maxsize=max+1;
queue=new int [maxsize];
front=rear=0;}
template <class T>
Queue<T>&Queue<T>::enqueue(const T &x)
{rear=(rear+1)%maxsize;
queue[rear]=x;
return *this;}
template <class T>
Queue<T>&Queue<T>::dequeue(T &x)
{
front=(front+1)%maxsize;
x=queue[front];
return *this; }
template <class T>
int Queue<T>::bignum(int i,int j)
{ int m;
if(i>j)
return m=i;
else return m=j;
}
void main()
{
int n,t,a=0,x;
ifstream input("input.txt");
input>>n;
int *m=new int[n];
Queue<int> *s;
s=new Queue<int>[n];
int *b=new int[n];
ofstream output ("output.txt");
for(int i=0;i<n;i++)
{ input>>m[i];
for(int j=0;j<m[i];j++)
{
input>>t;
s[i].enqueue(t);//
b[i]=s[i].bignum(b[i],t);
}
};
for(i=0;i<n;i++)
{
if(b[i]>a)
a=b[i];
else if(b[i]<a)
continue;
}
output<<a<<endl;
int *q=new int [n];
for(i=0;i<n;i++)
{q[i]=0;
for(int j=0;j<m[i];j++)
{ s[i].dequeue(x);
if(x>0)
q[i]=q[i]+x;
else if(x<0)
{s[i].enqueue(q[-x-1]);
m[i]++;
}
}
}
for(i=0;i<n;i++)
{if(q[i]>q[i-1])
a=q[i];
else a=q[i-1];
}
output<<a<<" ";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -