Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct cube {
- int x,y,z;
- };
- cube c[110];
- int freeF[110];
- int n,p,sum=0;
- bool inval;
- bool equal(int i, int j) {
- return c[i].x==c[j].x && c[i].y==c[j].y
- && c[i].z==c[j].z;
- }
- bool share(int i, int j) {
- if (equal(i,j)) return false;
- if (c[i].x==c[j].x) {
- if (c[i].y==c[j].y) return abs(c[i].z-c[j].z)==1;
- if (c[i].z==c[j].z) return abs(c[i].y-c[j].y)==1;
- }
- if (c[i].y==c[j].y && c[i].z==c[j].z) return abs(c[i].x-c[j].x)==1;
- return false;
- }
- int main() {
- scanf("%d", &n);
- for (int it=0; it<n; it++) {
- scanf("%d", &p);
- inval=false;
- for (int i=0; i<p; i++) {
- scanf("%d,%d,%d", &c[i].x, &c[i].y, &c[i].z);
- freeF[i]=6;
- }
- printf("%d ", it+1);
- for (int i=1; i<p; i++) {
- int cnt=0;
- for (int j=0; j<i; j++) {
- if (equal(i,j)) {
- inval=true;
- break;
- }
- if (share(i,j)) freeF[i]--, freeF[j]--, cnt++;
- }
- if (!cnt) inval=true;
- if (inval) {
- printf("NO %d\n", i+1);
- break;
- }
- }
- if (inval) continue;
- sum=0;
- for (int i=0; i<p; i++)
- sum+=freeF[i];
- printf("%d\n", sum);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement