예제 #1
0
int main(){

    int size_g, size_edg, source, target, cost;
    scanf("%d%d", &size_g, &size_edg);
    if(size_g < 1 || size_edg < 1)
        return -1;

    heap *root = heapCreateRoot();
    vertex *vertices = (vertex*)calloc(size_g, sizeof(vertex));
    edge **inv = (edge**)calloc(size_g, sizeof(edge*));
    initGraph(vertices, size_g);

    vertices[0].heap_node.key = 0;

    heapInsert(root, &(vertices[0].heap_node));

    while(scanf("%d%d%d", &source, &target, &cost) != EOF) {
        inserir(vertices, inv, root, size_g, source, target, cost);
    }

    g_print_graph(vertices, size_g);

    freeGraph(vertices, size_g);
    freeInv(inv, size_g);
    free(vertices);
    free(inv);
    free(root);
    return 0;
}
예제 #2
0
void ScalpelInventory::refreshInv() {
	Screen &screen = *_vm->_screen;
	Talk &talk = *_vm->_talk;
	ScalpelUserInterface &ui = *(ScalpelUserInterface *)_vm->_ui;

	ui._invLookFlag = true;
	freeInv();

	ui._infoFlag = true;
	ui.clearInfo();

	screen._backBuffer2.blitFrom(screen._backBuffer1, Common::Point(0, CONTROLS_Y),
		Common::Rect(0, CONTROLS_Y, SHERLOCK_SCREEN_WIDTH, SHERLOCK_SCREEN_HEIGHT));
	ui.examine();

	if (!talk._talkToAbort) {
		screen._backBuffer2.blitFrom((*ui._controlPanel)[0], Common::Point(0, CONTROLS_Y));
		loadInv();
	}
}