Sfoglia il codice sorgente

[2015][c][Day_2] Adding Solution for Part 2

Vinicius Teshima 1 anno fa
parent
commit
d095f4f7a8
1 ha cambiato i file con 12 aggiunte e 0 eliminazioni
  1. 12 0
      2015/c/Day_2/main.c

+ 12 - 0
2015/c/Day_2/main.c

@@ -13,6 +13,7 @@ struct rect {
 };
 
 #define BL_MIN(v1, v2) ((((v1) >= (v2)) * (v2)) + (((v1) < (v2)) * (v1)))
+#define BL_MAX(v1, v2) ((((v1) >= (v2)) * (v1)) + (((v1) < (v2)) * (v2)))
 
 int
 main(int argc, char *argv[])
@@ -80,6 +81,17 @@ main(int argc, char *argv[])
 			res += (s1 * 2) + (s2 * 2) + (s3 * 2) + BL_MIN(s1, m1);
 		}
 	} else {
+		long m1 = 0;
+		long m2 = 0;
+		long ma1 = 0;
+
+		for ( i = 0; i < rects_size; ++i ) {
+			r = rects[i];
+			m1 = BL_MIN(r.l, r.w);
+			ma1 = BL_MAX(r.l, r.w);
+			m2 = BL_MIN(r.h, ma1);
+			res += ((m1 + m1 + m2 + m2) + (r.l * r.w * r.h));
+		}
 	}
 
 	printf("Result: %ld\n", res);