Advertisement
royalsflush

Referência para LA 4238 (Luiza)

Apr 5th, 2012
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct cube {
  5.     int x,y,z;
  6. };
  7.  
  8. cube c[110];
  9. int freeF[110];
  10. int n,p,sum=0;
  11. bool inval;
  12.  
  13. bool equal(int i, int j) {
  14.     return c[i].x==c[j].x && c[i].y==c[j].y
  15.         && c[i].z==c[j].z;
  16. }
  17.  
  18. bool share(int i, int j) {
  19.     if (equal(i,j)) return false;
  20.  
  21.     if (c[i].x==c[j].x) {
  22.         if (c[i].y==c[j].y) return abs(c[i].z-c[j].z)==1;
  23.         if (c[i].z==c[j].z) return abs(c[i].y-c[j].y)==1;
  24.     }
  25.     if (c[i].y==c[j].y && c[i].z==c[j].z) return abs(c[i].x-c[j].x)==1;
  26.    
  27.     return false;
  28. }
  29.  
  30. int main() {
  31.     scanf("%d", &n);
  32.  
  33.     for (int it=0; it<n; it++) {
  34.         scanf("%d", &p);
  35.         inval=false;
  36.  
  37.         for (int i=0; i<p; i++) {
  38.             scanf("%d,%d,%d", &c[i].x, &c[i].y, &c[i].z);
  39.             freeF[i]=6;
  40.         }
  41.         printf("%d ", it+1);
  42.  
  43.         for (int i=1; i<p; i++) {
  44.             int cnt=0;
  45.  
  46.             for (int j=0; j<i; j++) {
  47.                 if (equal(i,j)) {
  48.                     inval=true;
  49.                     break;
  50.                 }
  51.                
  52.                 if (share(i,j)) freeF[i]--, freeF[j]--, cnt++;
  53.             }
  54.  
  55.             if (!cnt) inval=true;
  56.             if (inval) {
  57.                 printf("NO %d\n", i+1);
  58.                 break;
  59.             }
  60.         }
  61.  
  62.         if (inval) continue;
  63.         sum=0;
  64.  
  65.         for (int i=0; i<p; i++)
  66.             sum+=freeF[i];
  67.         printf("%d\n", sum);
  68.     }
  69.  
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement