day 3 finally finished... complicated solution for a simple question because im dumb
parent
db622cd1f7
commit
5d88192d0d
@ -1,69 +0,0 @@
|
|||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#define ARR_LEN (1000)
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
FILE* fp = fopen("input.txt", "r");
|
|
||||||
if(!fp)
|
|
||||||
{
|
|
||||||
printf("FUCK");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int bit_ct[12];
|
|
||||||
int diagnostic_arr[ARR_LEN];
|
|
||||||
|
|
||||||
|
|
||||||
memset(diagnostic_arr, 0, ARR_LEN * sizeof(int));
|
|
||||||
memset(bit_ct, 0, 12 * sizeof(int));
|
|
||||||
|
|
||||||
|
|
||||||
char* line = NULL;
|
|
||||||
size_t len = 0;
|
|
||||||
for(int ind = 0; ind < ARR_LEN; ind++)
|
|
||||||
{
|
|
||||||
ssize_t rc = getline(&line, &len, fp);
|
|
||||||
if(rc == -1)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
printf("FUCK\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
diagnostic_arr[ind] = strtol(line, NULL, 2);
|
|
||||||
for(int bit = 0; bit < 12; bit++)
|
|
||||||
{
|
|
||||||
bit_ct[bit] += ((diagnostic_arr[ind] & (1 << bit))>>bit);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* uncomment this if u want to make ur code run like python */
|
|
||||||
/* int mat[1000][10000000]; */
|
|
||||||
|
|
||||||
/* for(int zind = 0; zind < 1000; zind++) */
|
|
||||||
/* { */
|
|
||||||
/* for(int zzind = 0; zzind < 10000000; zzind++) */
|
|
||||||
/* { */
|
|
||||||
/* mat[zzind][zind]= 0; */
|
|
||||||
/* } */
|
|
||||||
/* } */
|
|
||||||
int gamma = 0;
|
|
||||||
int dar = 0;
|
|
||||||
for(int bit = 0; bit < 12; bit++)
|
|
||||||
{
|
|
||||||
gamma += ((bit_ct[bit] > (ARR_LEN >> 1))<<bit);
|
|
||||||
dar += ((bit_ct[bit] < (ARR_LEN >> 1))<<bit);
|
|
||||||
printf("%d ", bit_ct[bit]);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
printf("solution %d\n", gamma*dar);
|
|
||||||
|
|
||||||
fclose(fp);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
@ -0,0 +1,256 @@
|
|||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
p bit_ct
|
||||||
|
p bit
|
||||||
|
p *ctr_wite
|
||||||
|
p *ctr_write
|
||||||
|
p *diag_write@*ctr_write
|
||||||
|
p/t *diag_write@*ctr_write
|
||||||
|
c
|
||||||
|
del
|
||||||
|
b 173
|
||||||
|
c
|
||||||
|
p/t *diag_write@*ctr_write
|
||||||
|
p/t *diag_write
|
||||||
|
p/t *ctr_write
|
||||||
|
q
|
||||||
|
b 181 if *ctr_write == 1
|
||||||
|
r
|
||||||
|
p *diag_write@*ctr_write
|
||||||
|
p/t *diag_write@*ctr_write
|
||||||
|
b 181 if *ctr_write == 4
|
||||||
|
r
|
||||||
|
p *diag_write@*ctr_write
|
||||||
|
p/t *diag_write@*ctr_write
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
p bit
|
||||||
|
p *diag_read@*ctr_read
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
p/t *diag_read@*ctr_read
|
||||||
|
q
|
||||||
|
b 166
|
||||||
|
r
|
||||||
|
b 181
|
||||||
|
p *diag_read@*ctr_read
|
||||||
|
p/t *diag_read@*ctr_read
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
b 181
|
||||||
|
b 181
|
||||||
|
c
|
||||||
|
r
|
||||||
|
c
|
||||||
|
b 182
|
||||||
|
del
|
||||||
|
b 166
|
||||||
|
b 182
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
b 184
|
||||||
|
cv
|
||||||
|
c
|
||||||
|
c
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
nn
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
nn
|
||||||
|
n
|
||||||
|
del
|
||||||
|
b 165
|
||||||
|
b 181
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
q
|
||||||
|
b 166
|
||||||
|
b 181
|
||||||
|
c
|
||||||
|
r
|
||||||
|
c
|
||||||
|
p *diag_write@*ctr_write
|
||||||
|
p/t *diag_write@*ctr_write
|
||||||
|
p bit
|
||||||
|
c
|
||||||
|
p *diag_read@*ctr_read
|
||||||
|
p/t *diag_read@*ctr_read
|
||||||
|
p *diag_read@*ctr_read
|
||||||
|
c
|
||||||
|
p *diag_write@*ctr_write
|
||||||
|
p/t *diag_write@*ctr_write
|
||||||
|
c
|
||||||
|
n
|
||||||
|
n
|
||||||
|
p bit_ct
|
||||||
|
p bit_ctn
|
||||||
|
n
|
||||||
|
load
|
||||||
|
q
|
||||||
|
b 157
|
||||||
|
b 166
|
||||||
|
b 181
|
||||||
|
r
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
p bit
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
p bit
|
||||||
|
n
|
||||||
|
p *diag_read@*ctr_read
|
||||||
|
p/t *diag_read@*ctr_read
|
||||||
|
p diag_read[ind] >> bit
|
||||||
|
p/t diag_read[ind] >> bit
|
||||||
|
p/t diag_read[ind] >> bit & 0x01
|
||||||
|
n
|
||||||
|
n
|
||||||
|
p bit_ct
|
||||||
|
n
|
||||||
|
p bit_ct
|
||||||
|
q
|
||||||
|
b 185
|
||||||
|
r
|
||||||
|
n
|
||||||
|
c
|
||||||
|
n
|
||||||
|
c
|
||||||
|
n
|
||||||
|
c
|
||||||
|
n
|
||||||
|
c
|
||||||
|
del
|
||||||
|
b 185 if *ctr_write == 1
|
||||||
|
r
|
||||||
|
n
|
||||||
|
p *diag_write
|
||||||
|
p/t *diag_write
|
||||||
|
p/t *diag_write@*ctr_write
|
||||||
|
p/t *diag_write@*ctr_write+1
|
||||||
|
p/t *diag_write@*ctr_write+2
|
||||||
|
n
|
||||||
|
p o2_gen_rating
|
||||||
|
n
|
||||||
|
p o2_gen_rating
|
||||||
|
p diag_write[*ctr_write]
|
||||||
|
del
|
||||||
|
b 157
|
||||||
|
b 166
|
||||||
|
b 181
|
||||||
|
r
|
||||||
|
c
|
||||||
|
c
|
||||||
|
p *diag_write@*ctr_write
|
||||||
|
c
|
||||||
|
c
|
||||||
|
p *ctr_read
|
||||||
|
c
|
||||||
|
p *diag_write@*ctr_write
|
||||||
|
r
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
p bit_ct
|
||||||
|
n
|
||||||
|
p bit_ct
|
||||||
|
n
|
||||||
|
p bit_ct
|
||||||
|
q
|
||||||
|
b 157
|
||||||
|
b 166
|
||||||
|
b 181
|
||||||
|
r
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
p bit_ct
|
||||||
|
r
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
p *ctr_read
|
||||||
|
p/t *diag_read@*ctr_read
|
||||||
|
n
|
||||||
|
p/t diag_read[ind]
|
||||||
|
p/t diag_read[ind] >> bit
|
||||||
|
p/t diag_read[ind] >> bit & 0x01
|
||||||
|
n
|
||||||
|
n
|
||||||
|
p bit_ct
|
||||||
|
p *ctr_read
|
||||||
|
c
|
||||||
|
p bit_ct
|
||||||
|
r
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
p diag_read[ind]
|
||||||
|
p/t diag_read[ind]
|
||||||
|
p/t diag_read[ind] >> bit
|
||||||
|
p bit
|
||||||
|
p/t diag_read[ind]
|
||||||
|
c
|
||||||
|
n
|
||||||
|
p *ctr_read
|
||||||
|
p bit_ct
|
||||||
|
n
|
||||||
|
n
|
||||||
|
p bit_ct
|
||||||
|
p *ctr_read
|
||||||
|
q
|
||||||
|
q
|
@ -0,0 +1,9 @@
|
|||||||
|
CC=gcc
|
||||||
|
CFLAGS=-std=gnu99 -O2 -g
|
||||||
|
PROJECT=aoc_day3
|
||||||
|
|
||||||
|
%.o: %.c
|
||||||
|
$(CC) -c -o $@ $< $(CFLAGS)
|
||||||
|
|
||||||
|
$(PROJECT): aoc_day3.o
|
||||||
|
$(CC) -o aoc_day3 aoc_day3.o
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,12 @@
|
|||||||
|
00100
|
||||||
|
11110
|
||||||
|
10110
|
||||||
|
10111
|
||||||
|
10101
|
||||||
|
01111
|
||||||
|
00111
|
||||||
|
11100
|
||||||
|
10000
|
||||||
|
11001
|
||||||
|
00010
|
||||||
|
01010
|
Loading…
Reference in New Issue