Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <stdio.h>
- #include <algorithm>
- #include <cstring>
- #include <iostream>
- #include <cstdio>
- #include <algorithm>
- #include <cstring>
- #include <string>
- #include <cctype>
- #include <stack>
- #include <queue>
- #include <list>
- #include <vector>
- #include <map>
- #include <set>
- #include <sstream>
- #include <stdlib.h>
- #include <cmath>
- #define LL unsigned long long
- using namespace std;
- int pegs[50];
- int
- up(int a) {
- if (a<=3 || a==7 || a==8 || a==12 || a==13) return 0;
- if (a<=6) return a-3;
- if (a<=11) return a-5;
- if (a<=27) return a-7;
- if (a<=30) return a-5;
- return a-3;
- }
- int
- down(int a) {
- if (!a || a>=31 || a==21 || a==22 || a==26 || a==27) return 0;
- if (a>=28) return a+3;
- if (a>=23) return a+5;
- if (a>=7) return a+7;
- if (a>=4) return a+5;
- return a+3;
- }
- int
- left(int a) {
- if (a<=1 || a==4 || a==7 || a==14 || a==21 || a==28 || a==31) return 0;
- return a-1;
- }
- int right(int a) {
- if (!a || a==3 || a==6 || a==13 || a==20 || a==27 || a==30 || a==33) return 0;
- return a+1;
- }
- bool tratar() {
- int i;
- for (i=33; i>=1; i--) {
- if (pegs[i]) continue;
- if (pegs[down(i)] && pegs[down(down(i))]) {
- pegs[down(i)] = pegs[down(down(i))] = 0;
- pegs[i] = 1;
- return true;
- }
- if (pegs[right(i)] && pegs[right(right(i))]) {
- pegs[right(i)] = pegs[right(right(i))] = 0;
- pegs[i] = 1;
- return true;
- }
- if (pegs[left(i)] && pegs[left(left(i))]) {
- pegs[left(i)] = pegs[left(left(i))] = 0;
- pegs[i] = 1;
- return true;
- }
- if (pegs[up(i)] && pegs[up(up(i))]) {
- pegs[up(i)] = pegs[up(up(i))] = 0;
- pegs[i] = 1;
- return true;
- }
- }
- return false;
- }
- void calc() {
- int i;
- int tot=0;
- while(tratar());
- for (i=1; i<=33; i++) {
- if (pegs[i]) tot+=i;
- }
- printf("%d\n", tot);
- }
- int main() {
- int i,n;
- printf("HI Q OUTPUT\n");
- scanf("%d", &n);
- for (i=0; i<n; i++) {
- int a;
- memset(pegs, 0, sizeof(pegs));
- while (1) {
- scanf("%d", &a);
- if (a==0) {
- break;
- } else {
- pegs[a] = 1;
- }
- }
- calc();
- }
- printf("END OF OUTPUT\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement