pranjal

Untitled

Oct 19th, 2013
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.14 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. double getY(double m, int x, int in[]){
  5.     return ((m*x)+(in[1]-(m*in[0])));
  6. }
  7.  
  8. double getX(double m, int y, int in[]){
  9.     return ((y-(in[1]-(m*in[0])))/m);
  10. }
  11.  
  12. int countbox(int in[]){
  13. printf("here");
  14.     int i, x1, x2, y1, y2, count = 0;
  15.     double m;
  16.     x1 = in[0];
  17.     y1 = in[1];
  18.     x2 = in[2];
  19.     y2 = in[3];
  20.     m = ((y2-y1)/(x2-x1));
  21.    
  22.     i = 1;
  23.     if(x1 < x2){
  24.         while((x1+i)<x2){
  25.             if(getY(m, (x1+i), in) != (double)(x1+i))
  26.                 count++;
  27.         }
  28.     }
  29.     else if(x1 > x2){
  30.         while((x1-i)>x2){
  31.             if(getY(m, (x1-i), in) != (double)(x1-i))
  32.                 count++;
  33.         }
  34.     }
  35.     i = 1;
  36.     if(y1 < y2){
  37.         while((y1+i)<y2){
  38.             if(getX(m, (y1+i), in) != (double)(y1+i))
  39.                 count++;
  40.         }
  41.     }
  42.     else if(y1 > y2){
  43.         while((y1-i)>y2){
  44.             if(getX(m, (y1-i), in) != (double)(y1-i))
  45.                 count++;
  46.         }
  47.     }
  48.     return count;
  49. }
  50.  
  51. int main(){
  52.     int *res, in[4], i, j, n;
  53.     j = 0;
  54.     scanf("%d", &n);
  55.     res = malloc(n*(sizeof(int)));
  56.     for(i=0; i<n; i++)
  57.     {
  58.         scanf("%d", &in[0]);
  59.         scanf("%d", &in[1]);
  60.         scanf("%d", &in[2]);
  61.         scanf("%d", &in[3]);
  62.         res[j] = countbox(in);
  63.         j++;
  64.     }
  65.     for(i=0; i<n; i++)
  66.         printf("%d\n", res[i]);
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment