/************************************************************ C's program execution always begins here, at main(). */ main() { int numCards; /* Equals 52 at the beginning of each game. */ int cards[52], playerPoints[2], dealerPoints[2], total[2]; char ans; /* for user's Hit/Stand or Yes/No response. */ do { initCardsScreen(cards, playerPoints, dealerPoints, total, &numCards); dealerGetsCard(&numCards, cards, dealerPoints); printf("\n"); /* Prints a blank line */ playerGetsCard(&numCards, cards, playerPoints); playerGetsCard(&numCards, cards, playerPoints); do { ans = getAns("Hit or stand (H/S)? "); if (ans == 'H') { playerGetsCard(&numCards, cards, playerPoints); } } while (ans != 'S'); /* Generate player's total score once the player stands. */ totalIt(playerPoints, total, PLAYER); do { dealerGetsCard(&numCards, cards, dealerPoints); } while (dealerPoints[ACEHIGH] < 17); /* Dealer has to stand at 17. */ totalIt(dealerPoints, total, DEALER); /* Calculate the dealer's hand total. */ findWinner(total); ans = getAns("\nPlay again (Y/N)? "); } while (ans == 'Y'); return; }
double getScilabVar(char *varname) { // Try to solve it locally char *s; double d=strtod(varname,&s); if (varname+strlen(varname)==s) return d; initScilab(); char buf[1024]; double f; if (!scilabActive) { printLog("There is not a Scilab instance running. Returning atof(%s)\n",varname); exitStatus = -1; return atof(varname); } sprintf(buf,"anss=%s",varname); executeScilabJob(buf,false); executeScilabJob("exists anss",false); getAns(&f,1,1); if (!scilabActive) { printLog("There is not a Scilab instance running. Returning atof(%s)\n",varname); exitStatus = -1; return atof(varname); } if (f==0) { printLog("Variable %s does not exists!\n",varname); exitStatus = -1; return 0.0; } executeScilabJob("ans=anss",false); getAns(&f,1,1); executeScilabJob("clear anss",false); return f; }
void build(int f, int t, int x){ len[x] = t - f + 1; tag[x] = Tag(-1, -1); if(f == t){ data[x] = Data(1, 1, 1, 1, 0); }else{ build(f, mid, ls); build(mid + 1, t, rs); data[x] = getAns(ls) + getAns(rs); } }
int getSum(int f, int t, int x){ if(f != t) push(x); if(f == t){ return f; }else{ if(getAns(ls).sum < X){ X -= getAns(ls).sum; return getSum(mid + 1, t, rs); }else return getSum(f, mid, ls); } }
int getAns(int n, int from, int left, int tar) { if(left == 0) { if(tar == 0) return 1; return 0; } if(tar == 0) return 0; if(from > n) return 0; int &ret = dp[n][from][left][tar]; if(ret != -1) return ret; ret = getAns(n, from + 1, left, tar); if(from <= tar) ret += getAns(n, from + 1, left - 1, tar - from); return ret; }
int main(void) { memset(dp, -1, sizeof(dp)); while(scanf("%d %d %d", &n, &K, &s), n > 0) printf("%d\n", getAns(n, 1, K, s)); return 0; }
void Get(){ scanf("%d", &X); if(X > getAns(1).sum) puts("Reject Get"); else printf("Get at %d\n", getSum(1, N, 1)); }
void Client::checkLvlUp() { if (_ans.find("niveau") < _ans.size()) _lvlUp = true; else if (_lvlUp == false) getAns(); }
void ConsoleWriter::print(int n, int **array){ int *ans = getAns(n, array); for(int i = 0; i < n * n - 1; i++) std::cout << ans[i] << " "; std::cout << std::endl; delete[] ans; }
bool Client::startLoop() { while (_step != GAME_STEP) if (getAns() == false) return false; startAI(); return true; }
void getAns(vector<vector<char> >& maz, vector<vector<int> >& mat, int m, int n, int i, int j, int tmp, int flag){ if(i==m-1 && j==n-1) return; if(maz[i][j]=='b'){ mat[i][j]=min(mat[i][j],tmp+1); if(flag!=0) if(i<m-1) getAns(maz, mat, m, n, i+1, j,tmp+1, (flag+1)%2); if(flag==0) if(j<n-1) getAns(maz, mat, m, n, i, j+1,tmp+1, (flag+1)%2)); return; }
int getAns(int l,int r) { if(l>r)return 0; int MIN=10010,pos=-1; for(i=l;i<=r;i++) { if(a[i]<MIN) { MIN=a[i]; pos=i; } } for(i=l;i<=r;i++) { a[i]-=MIN; } return MIN+getAns(l,pos-1)+getAns(pos+1,r); }
void push(int x){ if(tag[x].f == -1 && tag[x].t == -1) return; data[x] = getAns(x); tag[ls] = tag[rs] = tag[x]; head[ls] = head[x]; head[x] = head[rs] = 0; tag[x] = Tag(); }
void New(){ scanf("%d", &X); if(getAns(1).m >= X){ getRange(1, N, 1); printf("New at %d\n", l); cover(1, N, 1); }else puts("Reject New"); }
int main() { scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); } printf("%d\n",getAns(1,n)); return 0; }
void cover(int f, int t, int x){ if(f != t) push(x); if(l <= f && t <= r){ if(!strcmp(buffer, "New")){ tag[x] = Tag(l, r); head[x] = (l == f); } if(!strcmp(buffer, "Free")){ tag[x] = Tag(0, 0); head[x] = -(l == f); } }else{ if(l <= mid) cover(f, mid, ls); if(r > mid) cover(mid + 1, t, rs); data[x] = getAns(ls) + getAns(rs); } }
void Client::writeToSocket(std::string const &buffer) { int len = buffer.size(); int len2; len2 = 0; if (_step == GAME_STEP) ++_nbCmd; std::string buff(buffer); if (!buff.empty() && buffer[buff.length() - 1] == '\n') buff.erase(buff.length() - 1); std::cout << "\033[1;34m[CLIENT] Sending message : " << buff << "\033[0m" << std::endl; while (len2 < len) { if ((len2 += write(_socket, buffer.c_str() + len2, len)) == -1) throw NException("Error : write failed"); } if (_step == GAME_STEP) { refreshTime(); getAns(); if (_messages.size() == 0 && _regroupMessage.size() > 3 && _reading == false) { _reading = true; readMessage(_regroupMessage); _reading = false; _regroupMessage.clear(); } if (_messages.size() > 0 && _reading == false) { std::cout << "READING" << std::endl; _reading = true; for (size_t i = 0; i < _messages.size() ; ++i) readMessage(_messages[i]); _messages.clear(); if (_regroupMessage.size() > 3) readMessage(_regroupMessage); _regroupMessage.clear(); std::cout << "CLEAR" << std::endl; _reading = false; std::cout << "STOP READING" << std::endl; std::cout << "TIME: " << _time << std::endl; } } }
void dfs(int x){ if(x == n){ ans = min(ans,getAns()); return; } for(int i = 0;i < n;i++){ if(vis[i]) continue; ord[i] = x; vis[i] = 1; dfs(x+1); vis[i] = 0; } }
bool Client::checkAns() { checkBroadcast(); if (_ans.find("niveau") >= _ans.size()) { if (_lastCommand == INVENTORY && checkInventory() == false) getAns(); else if (_lastCommand == BASIC && _ans != "ok" && _ans != "ko") { getAns(); } else if (_lastCommand == INCANTATION && _ans != "ko") checkLvlUp(); else if (_lastCommand == LOOK && _ans.at(_ans.length() - 1) != '}' && _ans.at(0) != '{') return true; } else if (_lvlUp == false) { _lvlUp = true; ++_lvl; } return false; }
thing dfs(int x, int pre){ thing ret; ret.X = &buf[x]; (*ret.X)[c[x]] = 1; ret.Y = newNode(1); for(int i = 0;i < int(g[x].size());++ i){ if(g[x][i] != pre){ ret = merge(ret, dfs(g[x][i], x)); } } for(int i = 0;i < int(q[x].size());++ i){ ans[q[x][i]] = ret.Y->sz - getAns(ret.Y, k[q[x][i]]); } return ret; }
int main(void) { int T; scanf("%d", &T); while(T--) { scanf("%d %s", &n, table); sn = 0; for(int i = 0; i < n; i++) if(table[i] == '1') sushi[sn++] = i; memset(dp, -1, sizeof(dp)); if(getAns((1 << sn) - 1, 0) == 1) printf("Adam\n"); else printf("Betka\n"); } return 0; }
int getAns(int stat, int turn) { int &ret = dp[stat][turn]; if(ret != -1) return ret; ret = 0; for(int i = 0; i < sn; i++) { if((stat & (1 << i)) == 0) continue; int loc = sushi[i] - turn; if(loc < 0) continue; if(getAns(stat ^ (1 << i), turn + 1) == 0) ret = 1; } return ret; }
int main() { int n; init(); while(~scanf("%d", &n)) { long long a; countNumber = 0; for(int i=0;i<n;++i) { scanf("%lld", &a); divide(a); } printf("%lld\n", getAns()); } return 0; }
void getRange(int f, int t, int x){ if(f != t) push(x); if(getAns(x).m == getAns(x).s){ l = f; r = l + X - 1; return; } if(getAns(ls).m >= X) return getRange(f, mid, ls); if(getAns(ls).r + getAns(rs).l >= X){ l = mid - getAns(ls).r + 1; X -= getAns(ls).r; r = mid + X; return; } if(getAns(rs).m >= X) return getRange(mid + 1, t, rs); }
void Add(int fd_stdin,int fd_stdout) { int fd; int n; char buf[80]={0}; char wbuf[200]={0}; char IsFirst = 0; int IsFinish = 0; while(!IsFinish) { printf("Please input the expression..\n"); int r = read(fd_stdin, buf, 70); buf[r] = 0; char* ddd = getAns(&buf); printf("Answer : %s",ddd); printf("\n"); IsFinish = 1; } }
int calc(int x, int y){ return std::min(getAns(x, y + 1), std::min(getAns(x + 1, y), getAns(x - 1, y + 1))); }