void display(void) { int i; glClearColor(1.0f,1.0f,1.0f,1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPointSize(1.0); glBegin(GL_POINTS); init_buffer(); //initialize buffer rotate_all(); //rotate object project_data(); //project object drawPoly_zbuffer(); //draws cube performUpdate(); //moves balls and handles collisions //draws the balls for(i=0;i<no_balls;i++) { find_intersect(Balls[i].pos[0],Balls[i].pos[1],Balls[i].pos[2],Balls[i].r); fill_color(Balls[i].pos[0],Balls[i].pos[1],Balls[i].pos[2],i%6); } //draws the z-buffer disp_zbuf(); glEnd(); glutSwapBuffers(); }
int main() { int num, now, pw; int i; int action; int total = 0; scanf("%d", &num); scanf("%d", &now); scanf("%d", &pw); size = num; a_now = (int*)malloc(num * sizeof(int)); a_pw = (int*)malloc(num * sizeof(int)); a_result = (int*)malloc(num * sizeof(int)); assign(num, a_now, now, 0); assign(num, a_pw, pw, 0); for(i=0; i<size; i++) { if(a_now[i] == a_pw[i]) { a_result[i] = 0; continue; } else { action = calc(a_now[i], a_pw[i]); rotate_all(action, i, a_now); a_result[i] = action; } } for(i=0; i<size; i++) { if(a_result[i] == 0) continue; else { if(a_result[i] < 0) total += (a_result[i] * -1); else total += a_result[i]; } } printf("%d\n", total); for(i=0; i<size; i++) printf("%d %d\n", i+1, a_result[i]); return 0; }