Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
無聊的水題啊#include <stdio.h> #include <string.h> #include <iostream> #include <cstdlib> #include <string> #include <vector> #include <map> using namespace std; bool board[34]; int sum; int FLAG = -233; void init(){ for(int i = 0; i < 34; i++) board[i] = 0; sum = 0; int tmp; while(1){ cin >> tmp; if(!tmp) break; board[tmp] = 1; sum += tmp; } } int shang[34] = {0,0,0,0,1,2,3,0,0,4,5,6,0,0,7,8,9,10,11,12,13,14,15,16,17,18,19,20,23,24,25,28,29,30}; int xia[34] = {0,4,5,6,9,10,11,14,15,16,17,18,19,20,21,22,23,24,25,26,27,0,0,28,29,30,0,0,31,32,33,0,0,0}; int zuo[34] = {0,0,1,2,0,4,5,0,7,8,9,10,11,12,0,14,15,16,17,18,19,0,21,22,23,24,25,26,0,28,29,0,31,32}; int you[34] = {0,2,3,0,5,6,0,8,9,10,11,12,13,0,15,16,17,18,19,20,0,22,23,24,25,26,27,0,29,30,0,32,33,0}; int solve(){ for(int i = 33; i > 0; i--){ //顺序:下,右,左,上 if(board[i]) continue; if(board[xia[xia[i]]] && board[xia[i]]){ board[i] = 1; board[xia[xia[i]]] = 0; board[xia[i]] = 0; return xia[i]+xia[xia[i]]-i; } if(board[you[you[i]]] && board[you[i]]){ board[i] = 1; board[you[you[i]]] = 0; board[you[i]] = 0; return you[i]+you[you[i]]-i; } if(board[zuo[zuo[i]]] && board[zuo[i]]){ board[i] = 1; board[zuo[zuo[i]]] = 0; board[zuo[i]] = 0; return zuo[i]+zuo[zuo[i]]-i; } if(board[shang[shang[i]]] && board[shang[i]]){ board[i] = 1; board[shang[shang[i]]] = 0; board[shang[i]] = 0; return shang[i]+shang[shang[i]]-i; } } return FLAG; } int main(int argc, char **argv){ int n; cin >> n; cout << "HI Q OUTPUT" << endl; while(n--){ init(); int sub; while((sub = solve()) != FLAG){ sum -= sub; } cout << sum << endl; } cout << "END OF OUTPUT" << endl; return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator