static int rem (BTree* a, int x) { if (isleaf(a)) { int pos; if (findpos(a,x,&pos)) delleft(a,pos); /* or delright */ else return 0; } else { int pos; if (findpos(a,x,&pos)) { BTree* l = findmax(a->p[pos]); a->k[pos] = l->k[l->n-1]; l->k[l->n-1] = x; } if (!rem(a->p[pos],x)) return 0; if (underflow(a->p[pos])) rearrange(a,pos); } return 1; }
int main() { int t=0,n=0,i,j,pos=0,quot,rem,h,count=0; int H[505],K[505]; scanf("%d",&t); for(j=0;j<t;j++) { count=0; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&H[i]); for(i=0;i<n;i++) scanf("%d",&K[i]); sort(K,0,n); for(i=0;i<n;i++) { quot=0,rem=0,h=2*H[i]; while(h>=K[0]) { pos=findpos(K,0,n-1,h); quot+=h/(K[pos-1]); rem=h%(K[pos-1]); h=rem; } if(h!=0) quot++; count=count+quot; } printf("%d\n",count); } getch(); return 0; }
void Url::set(const UString& x) { U_TRACE(0, "Url::set(%.*S)", U_STRING_TO_TRACE(x)) url = x; findpos(); }
void Url::set(const UString& x) { U_TRACE(0, "Url::set(%V)", x.rep) url = x; findpos(); }
BTree* bt_search(BTree* a, int x, int* pos) { int found = findpos(a,x,pos); if (found) return a; else if (isleaf(a)) return NULL; else return bt_search(a->p[*pos], x, pos); }
void Diction_list::del(char* word) { int a = findpos(word); if (a != -1) { heap_my.free_mem(((Article*)get(a))->word); heap_my.free_mem(((Article*)get(a))->description); remove(a); } }
TreeNode *getTree(vector<int> &inorder, vector<int> &postorder, int inorderst, int inorderen, int postorderst, int postorderen) { if (postorderst>=postorderen || inorderst>=inorderen) return NULL; int pos = findpos(inorder, inorderst, inorderen, postorder[postorderen-1]); TreeNode* left = getTree(inorder, postorder, inorderst, pos, postorderst, postorderst+(pos-inorderst)); TreeNode* right = getTree(inorder, postorder, pos+1, inorderen, postorderst+(pos-inorderst), postorderen-1); TreeNode* root = new TreeNode(postorder[postorderen-1]); root->left = left; root->right = right; return root; }
int main() { int findpos(char s[], char c) ; char string[80], ch ; int y = 0 ; std::cout << "Enter a string value maximum of (80): " ; std::cin.getline(string, 80) ; std::cout << "Enter a char to be seacrched for: " ; std::cin.get(ch) ; y = findpos(string, ch); if (y == -1) std::cout << "Sorry, character is not a string."; return 0; }
static void insert (BTree* a, int x) { int pos; findpos(a,x,&pos); /* insere mesmo se ja existir */ if (isleaf(a)) { addright(a,pos,x,NULL); } else { insert( a->p[pos], x ); if (overflow(a->p[pos])) { int m; BTree* b = split(a->p[pos],&m); addright(a,pos,m,b); } } }
/************************************************************** * function: clist_insertchunk() * args: list -- list to search * addr -- addr of memory chunk * size -- size of memory chunk * returns: none * called from: ckpt_coalesce() *************************************************************/ static void clist_insertchunk(CLIST list, caddr_t addr, int size, int file_no, off_t offset) { CLIST_NODE ptr, new_node; caddr_t stop, orig_addr; stop = (caddr_t)addr+size; ptr = findpos(list, addr); if(addr > ptr->stop){ new_node = (CLIST_NODE)malloc(sizeof(struct clist_node)); new_node->addr = addr; new_node->offset = offset; new_node->stop = (caddr_t)min(ptr->flink->addr, stop); new_node->size = (unsigned long)(new_node->stop) - (unsigned long)(new_node->addr); new_node->file_no = file_no; cl_insert(ptr, new_node); offset += new_node->size; addr = (caddr_t)min(ptr->flink->addr, stop); ptr = ptr->flink; } while(stop > ptr->stop){ if(ptr->stop != ptr->flink->addr){ orig_addr = addr; addr = ptr->stop; offset += addr - orig_addr; new_node = (CLIST_NODE)malloc(sizeof(struct clist_node)); new_node->addr = addr; new_node->offset = offset; new_node->stop = (caddr_t)min(ptr->flink->addr, stop); new_node->size = (unsigned long)(new_node->stop) - (unsigned long)(new_node->addr); new_node->file_no = file_no; cl_insert(ptr, new_node); offset += new_node->size; addr = (caddr_t)min(ptr->flink->addr, stop); } ptr=ptr->flink; } }