1 solutions
-
0
C++ :
#include <set> #include <map> #include <list> #include <cmath> #include <ctime> #include <deque> #include <queue> #include <stack> #include <cctype> #include <cstdio> #include <string> #include <vector> #include <cassert> #include <cstdlib> #include <cstring> #include <sstream> #include <iostream> #include <algorithm> using namespace std; typedef unsigned long long u64; struct Stack { u64 a[1001]; int top; }; int InitStack(Stack &S) { S.top=-1; memset(S.a,0,sizeof(S.a)); return 1; } void pop(Stack &s,int &mark) { u64 temp; for(int i = mark;i < s.top-1;i++) { s.a[i]=s.a[i+1]; } s.top = s.top-2; } int main() { int n; Stack stack; //freopen("lianliankan.in","r",stdin); //freopen("lianliankan.out","w",stdout); while(scanf("%d",&n)!=EOF) { InitStack(stack); for(int i = 0;i < n;i ++) { scanf("%lld",&stack.a[i]); stack.top++; } int mark = -1; while(stack.top>0) { for(int i = 1;i <= 6;i++) { if(stack.top-i>=0) { if(stack.a[stack.top]==stack.a[stack.top-i]) { mark = stack.top-i; pop(stack,mark); break; } } } if(mark == -1) break; mark=-1; } if(stack.top < 0) cout << "1" << endl; else cout << "0" << endl; } return 0; } // //#include<stdio.h> //#include<stack> //#include<string.h> //using namespace std; //int main() //{ // int N; // freopen("lianliankan.in","r",stdin); // freopen("lianliankan.out","w",stdout); // while(scanf("%d", &N) != EOF) // { // int a; // int i, j, k; // stack<int> sta; // for(i = 0; i < N; ++ i) // { // scanf("%d", &a); // sta.push(a); // } // int v[6], vis[6]; // int flag = 0; // while(!flag) // { // for(i = 0; i < 6; ++ i) // { // v[i] = sta.top(); // sta.pop(); // if(sta.empty()) // { // flag = 1; // break; // } // } // memset(vis, 0, sizeof(vis)); // for(j = 0; j <= i; ++ j) // { // if(vis[j]) continue; // for(k = j + 1; k <= i; ++ k) // { // if(vis[k]) continue; // if(v[j] == v[k]) // { // vis[j] = vis[k] = 1; // break; // } // } // } // for(j = i; j >= 0; -- j) // if(!vis[j]) // sta.push(v[j]); // } // if(sta.empty()) printf("1\n"); // else printf("0\n"); // } // return 0; //} //#include <iostream> //#include <cstdio> //#include <cstring> //#include <algorithm> //#include <cstdlib> //#include <ctime> // //typedef unsigned long long u64; //u64 random(u64 n) //{ // u64 t; // if(n<=RAND_MAX) // { // t = rand(); // return t%n; // } // else // { // return rand()+random(n/(RAND_MAX+1))*(RAND_MAX+1); // } //} //int main() //{ // freopen("lianliankan.in","w",stdout); // srand(time(NULL)); // // printf("2\n1 1\n"); // printf("3\n1 1 1\n"); // printf("2\n1000000 1\n"); // for(int i = 0;i < 50;i ++) // { // int N = rand()%100+1; // printf("%d\n",N); // for(int k = 0;k < N;k ++) // { // u64 ai = random(2000000000); // printf("%lld ",ai); // } // printf("\n"); // } // return 0; //}
- 1
Information
- ID
- 1323
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- (None)
- # Submissions
- 0
- Accepted
- 0
- Uploaded By