#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <cctype> ///里面涉及一些字符变化的函数
#include <string>
#include <queue>
#include <stack>
#include <map> ///均为容器
#include <set>
#include <vector>
#include <sstream>
#define For(i,a) for(int i=0;i<a;++i)
#define MAX(x,y) ((x)>(y)?(x):(y))
#define MIN(x,y) ((x)<(y)?(x):(y))
#define ALL(x) x.begin(),x.end()
#define INS(x) inserter(x,x.begin())
using namespace std;
typedef long long ll ;
typedef unsigned long long ull ;
const int maxn=1000+10;
queue<int>pq;
int main()
{
int n;
cin>>n;
while(n--)
{
int m,a,k;
cin>>m;
for(int i=0;i<m;++i)
{
cin>>a;
pq.push(a);
}
for(k=0;k<maxn+10;++k)
{
int num[20];
int k=pq.size();
for(int i=0;i<k;++i)
{
num[i]=pq.front();
pq.pop();
}
for(int i=0;i<k-1;++i)
{
pq.push(fabs(num[i]-num[i+1]));
}
pq.push(fabs(num[0]-num[k-1]));
}
int sum=0;
while(!pq.empty())
{
sum+=pq.front();
pq.pop();
}
if(sum) cout<<"LOOP"<<endl;
else cout<<"ZERO"<<endl;
}
return 0;
}
这是一道简单的有关队列的运用题
怎么个简单法呢?
首先题意就是将前一个减去后一个的绝对值放入队列的末尾,然后最后一个呢是减去之前的第一个的绝对值。
由于数据比较小,中途定义了一个数组存n个数。
然后就是这样了,水题。
哈哈!