Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- double getY(double m, int x, int in[]){
- return ((m*x)+(in[1]-(m*in[0])));
- }
- double getX(double m, int y, int in[]){
- return ((y-(in[1]-(m*in[0])))/m);
- }
- int countbox(int in[]){
- printf("here");
- int i, x1, x2, y1, y2, count = 0;
- double m;
- x1 = in[0];
- y1 = in[1];
- x2 = in[2];
- y2 = in[3];
- m = ((y2-y1)/(x2-x1));
- i = 1;
- if(x1 < x2){
- while((x1+i)<x2){
- if(getY(m, (x1+i), in) != (double)(x1+i))
- count++;
- }
- }
- else if(x1 > x2){
- while((x1-i)>x2){
- if(getY(m, (x1-i), in) != (double)(x1-i))
- count++;
- }
- }
- i = 1;
- if(y1 < y2){
- while((y1+i)<y2){
- if(getX(m, (y1+i), in) != (double)(y1+i))
- count++;
- }
- }
- else if(y1 > y2){
- while((y1-i)>y2){
- if(getX(m, (y1-i), in) != (double)(y1-i))
- count++;
- }
- }
- return count;
- }
- int main(){
- int *res, in[4], i, j, n;
- j = 0;
- scanf("%d", &n);
- res = malloc(n*(sizeof(int)));
- for(i=0; i<n; i++)
- {
- scanf("%d", &in[0]);
- scanf("%d", &in[1]);
- scanf("%d", &in[2]);
- scanf("%d", &in[3]);
- res[j] = countbox(in);
- j++;
- }
- for(i=0; i<n; i++)
- printf("%d\n", res[i]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment