days 4, 5 and 6, not bad
This commit is contained in:
parent
ca06c26658
commit
e127af3e0d
|
@ -0,0 +1,25 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <openssl/md5.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
compile with `tcc -lssl run.c`
|
||||||
|
run with `./a.out | grep -F ' 000000'`, then CTRL+C
|
||||||
|
*/
|
||||||
|
void main(int argc, char **argv) {
|
||||||
|
unsigned char digest[16];
|
||||||
|
char string[32];
|
||||||
|
MD5_CTX context;
|
||||||
|
for (int i=1;;i++) {
|
||||||
|
printf("%d ",i);
|
||||||
|
sprintf(string,"ckczppom%d",i);
|
||||||
|
MD5_Init(&context);
|
||||||
|
MD5_Update(&context, string, strlen(string));
|
||||||
|
MD5_Final(digest, &context);
|
||||||
|
for(int i = 0; i < 16; ++i) {
|
||||||
|
printf("%02x", (unsigned int)digest[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def isnice1(l):
|
||||||
|
if any(a+b in ['ab','cd','pq','xy'] for (a,b) in zip(l,l[1:])):
|
||||||
|
return False
|
||||||
|
vowels = sum(c in 'aeiou' for c in l)
|
||||||
|
inarow = any(a==b for (a,b) in zip(l,l[1:]))
|
||||||
|
return vowels > 2 and inarow
|
||||||
|
|
||||||
|
def isnice2(l):
|
||||||
|
xyxy = any(l[i:i+2] == l[j:j+2] for i in range(len(l)-1) for j in range(i+2,len(l)-1))
|
||||||
|
gfg = any(a == b for a,b in zip(l[0:],l[2:]))
|
||||||
|
return xyxy and gfg
|
||||||
|
|
||||||
|
isnice = isnice2 if sys.argv[1] == "2" else isnice1
|
||||||
|
|
||||||
|
print(sum(isnice(l[:-1]) for l in sys.stdin.readlines()))
|
|
@ -0,0 +1,18 @@
|
||||||
|
import sys
|
||||||
|
|
||||||
|
M = [[False for _ in range(1000)] for _ in range(1000)]
|
||||||
|
|
||||||
|
for l in sys.stdin.readlines():
|
||||||
|
I = l[:-1].split(' ')
|
||||||
|
xf,yf = list(map(int,I[-3].split(',')))
|
||||||
|
xt,yt = list(map(int,I[-1].split(',')))
|
||||||
|
for x in range(xf,xt+1):
|
||||||
|
for y in range(yf,yt+1):
|
||||||
|
if I[-4] == 'on':
|
||||||
|
M[x][y] = True
|
||||||
|
elif I[-4] == 'off':
|
||||||
|
M[x][y] = False
|
||||||
|
else:
|
||||||
|
M[x][y] = not M[x][y]
|
||||||
|
|
||||||
|
print(sum(x for C in M for x in C))
|
|
@ -0,0 +1,18 @@
|
||||||
|
import sys
|
||||||
|
|
||||||
|
M = [[0 for _ in range(1000)] for _ in range(1000)]
|
||||||
|
|
||||||
|
for l in sys.stdin.readlines():
|
||||||
|
I = l[:-1].split(' ')
|
||||||
|
xf,yf = list(map(int,I[-3].split(',')))
|
||||||
|
xt,yt = list(map(int,I[-1].split(',')))
|
||||||
|
for x in range(xf,xt+1):
|
||||||
|
for y in range(yf,yt+1):
|
||||||
|
if I[-4] == 'on':
|
||||||
|
M[x][y] += 1
|
||||||
|
elif I[-4] == 'off':
|
||||||
|
M[x][y] = max(0, M[x][y]-1)
|
||||||
|
else:
|
||||||
|
M[x][y] += 2
|
||||||
|
|
||||||
|
print(sum(x for C in M for x in C))
|
Loading…
Reference in New Issue