1594
题目链接如下:
Online Judge
这道题其实挺坑的……我写完后发现网上几乎所有人都很聪明用了暴力1000次看它会不会是ZERO,不然就是LOOP,就我傻乎乎还在那判断是不是loop了……审题不清……
#include <cstdio>
#include <vector>
#include <cmath>
#include <set>
// #define debugint T, n;
bool flag;
std::vector<int> pre, curr;
std::set<std::vector<int>> st;int main(){#ifdef debugfreopen("0.txt", "r", stdin);freopen("1.txt", "w", stdout);#endifscanf("%d", &T);while (T--){st.clear();scanf("%d", &n);pre.resize(n);curr.resize(n);for (int i = 0; i < n; ++i){scanf("%d", &pre[i]);}st.insert(pre);while (1){flag = true;for (int i = 0; i < n; ++i){curr[i] = abs(pre[i] - pre[(i + 1) % n]);if (curr[i]){flag = false;}}if (flag){printf("ZERO\n");break;}if (st.find(curr) != st.end()){printf("LOOP\n");break;}pre = curr;st.insert(curr);}}#ifdef debugfclose(stdin);fclose(stdout);#endifreturn 0;
}
更多推荐
1594
发布评论