Advertisement
dpcc97

[SPOJ - OBI] Macaco Prego

May 1st, 2014
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.96 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int main(){
  6.    
  7.     int n, cont = 1;
  8.    
  9.     scanf("%d", &n);
  10.    
  11.     while(n != 0) {
  12.        
  13.         int atual[4], inter[4], i = 0;
  14.         int ax1, ax2, ay1, ay2, bx1, bx2, by1, by2, sinal = 0;
  15.        
  16.         for (i = 0; i < n; i++) {
  17.            
  18.             scanf("%d %d %d %d", &atual[0], &atual[1], &atual[2], &atual[3]);
  19.            
  20.             if (i == 0) {inter[0] = atual[0];inter[1] = atual[1];inter[2] = atual[2];inter[3] = atual[3];continue;}
  21.            
  22.             bx1 = atual[0];
  23.             by1 = atual[1];
  24.             bx2 = atual[2];
  25.             by2 = atual[3];
  26.        
  27.             ax1 = inter[0];
  28.             ay1 = inter[1];
  29.             ax2 = inter[2];
  30.             ay2 = inter[3];
  31.        
  32.             if (ay1 == by1 && ay2 == by2 && ax1 == bx1 && ax2 == bx2)  {inter[0] = ax1;inter[1] = ay1;inter[2] = ax2;inter[3] = ay2;}
  33.             else if (ay1 > by1 && ay2 > by2 && ax1 > bx1 && ax2 > bx2) {inter[0] = ax1;inter[1] = by1;inter[2] = bx2;inter[3] = ay2;}  
  34.             else if (ay1 > by1 && ay2 > by2 && ax1 > bx1 && ax2 < bx2) {inter[0] = ax1;inter[1] = by1;inter[2] = ax2;inter[3] = ay2;}
  35.             else if (ay1 > by1 && ay2 > by2 && ax1 < bx1 && ax2 > bx2) {inter[0] = bx1;inter[1] = by1;inter[2] = bx2;inter[3] = ay2;}
  36.             else if (ay1 > by1 && ay2 > by2 && ax1 < bx1 && ax2 < bx2) {inter[0] = bx1;inter[1] = by1;inter[2] = ax2;inter[3] = ay2;}
  37.             else if (ay1 > by1 && ay2 < by2 && ax1 > bx1 && ax2 > bx2) {inter[0] = ax1;inter[1] = by1;inter[2] = bx2;inter[3] = by2;}
  38.             else if (ay1 > by1 && ay2 < by2 && ax1 > bx1 && ax2 < bx2) {inter[0] = ax1;inter[1] = by1;inter[2] = ax2;inter[3] = by2;}
  39.             else if (ay1 > by1 && ay2 < by2 && ax1 < bx1 && ax2 > bx2) {inter[0] = bx1;inter[1] = by1;inter[2] = bx2;inter[3] = by2;}
  40.             else if (ay1 > by1 && ay2 < by2 && ax1 < bx1 && ax2 < bx2) {inter[0] = bx1;inter[1] = by1;inter[2] = ax2;inter[3] = by2;}
  41.             else if (ay1 < by1 && ay2 > by2 && ax1 > bx1 && ax2 > bx2) {inter[0] = ax1;inter[1] = ay1;inter[2] = bx2;inter[3] = by2;}
  42.             else if (ay1 < by1 && ay2 > by2 && ax1 > bx1 && ax2 < bx2) {inter[0] = ax1;inter[1] = ay1;inter[2] = ax2;inter[3] = by2;}
  43.             else if (ay1 < by1 && ay2 > by2 && ax1 < bx1 && ax2 > bx2) {inter[0] = bx1;inter[1] = ay1;inter[2] = bx2;inter[3] = by2;}
  44.             else if (ay1 < by1 && ay2 > by2 && ax1 < bx1 && ax2 < bx2) {inter[0] = bx1;inter[1] = ay1;inter[2] = ax2;inter[3] = by2;}
  45.             else if (ay1 < by1 && ay2 < by2 && ax1 > bx1 && ax2 > bx2) {inter[0] = ax1;inter[1] = ay1;inter[2] = bx2;inter[3] = ay2;}
  46.             else if (ay1 < by1 && ay2 < by2 && ax1 > bx1 && ax2 < bx2) {inter[0] = ax1;inter[1] = ay1;inter[2] = ax2;inter[3] = ay2;}
  47.             else if (ay1 < by1 && ay2 < by2 && ax1 < bx1 && ax2 > bx2) {inter[0] = bx1;inter[1] = ay1;inter[2] = bx2;inter[3] = ay2;}
  48.             else if (ay1 < by1 && ay2 < by2 && ax1 < bx1 && ax2 < bx2) {inter[0] = bx1;inter[1] = ay1;inter[2] = ax2;inter[3] = ay2;}
  49.             else sinal = 1;
  50.         }
  51.        
  52.         printf("Teste %d\n", cont); cont++;
  53.        
  54.         if (sinal == 0 && n > 1)
  55.             printf("%d %d %d %d\n\n", inter[0], inter[1], inter[2], inter[3]);
  56.         else
  57.             printf("nenhum\n\n");
  58.        
  59.         scanf("%d", &n);
  60.        
  61.     }
  62.    
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement