added days 5 and 6
This commit is contained in:
parent
cec45601ec
commit
5d06b5f55c
5 changed files with 181 additions and 1 deletions
53
05.c
Normal file
53
05.c
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define SIZE 50
|
||||||
|
|
||||||
|
char stack[10*SIZE];
|
||||||
|
int ptr[10];
|
||||||
|
|
||||||
|
int move(int source, int dest) {
|
||||||
|
ptr[dest]--;
|
||||||
|
stack[ptr[dest]] = stack[ptr[source]];
|
||||||
|
ptr[source]++;
|
||||||
|
}
|
||||||
|
int insert(int index, char val) {
|
||||||
|
stack[ptr[index]] = val;
|
||||||
|
ptr[index]++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void init_ptrs() {
|
||||||
|
for (int i=0; i<10; i++) {
|
||||||
|
ptr[i] = i*SIZE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main () {
|
||||||
|
char cur[20];
|
||||||
|
int cur_sum = 0;
|
||||||
|
int max = 0;
|
||||||
|
init_ptrs();
|
||||||
|
int k = 1;
|
||||||
|
while (fgets(cur,5,stdin) !=NULL) {
|
||||||
|
if (strlen(cur) < 4 || cur[1] == '1') break;
|
||||||
|
if (cur[1] != ' ') {
|
||||||
|
insert(k,cur[1]);
|
||||||
|
}
|
||||||
|
k++;
|
||||||
|
if (k > 9) k=1;
|
||||||
|
}
|
||||||
|
init_ptrs();
|
||||||
|
char c;
|
||||||
|
while (c = getchar(), c != '\n'); // skip lines
|
||||||
|
while (c = getchar(), c != '\n'); // skip lines
|
||||||
|
int q, src, dst;
|
||||||
|
while (scanf("move %d from %d to %d\n", &q, &src, &dst) != EOF) {
|
||||||
|
for (int k=0; k<q ; k++)
|
||||||
|
move(src,dst);
|
||||||
|
}
|
||||||
|
for (int i=1; i<10; i++)
|
||||||
|
putchar(stack[ptr[i]]);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
52
05_02.c
Normal file
52
05_02.c
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define SIZE 50
|
||||||
|
|
||||||
|
char stack[10*SIZE];
|
||||||
|
int ptr[10];
|
||||||
|
|
||||||
|
int move(int source, int dest, int q) {
|
||||||
|
ptr[dest]-= q;
|
||||||
|
memcpy(stack + ptr[dest], stack + ptr[source], q);
|
||||||
|
ptr[source]+=q;
|
||||||
|
}
|
||||||
|
int insert(int index, char val) {
|
||||||
|
stack[ptr[index]] = val;
|
||||||
|
ptr[index]++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void init_ptrs() {
|
||||||
|
for (int i=0; i<10; i++) {
|
||||||
|
ptr[i] = i*SIZE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main () {
|
||||||
|
char cur[20];
|
||||||
|
int cur_sum = 0;
|
||||||
|
int max = 0;
|
||||||
|
init_ptrs();
|
||||||
|
int k = 1;
|
||||||
|
while (fgets(cur,5,stdin) !=NULL) {
|
||||||
|
if (strlen(cur) < 4 || cur[1] == '1') break;
|
||||||
|
if (cur[1] != ' ') {
|
||||||
|
insert(k,cur[1]);
|
||||||
|
}
|
||||||
|
k++;
|
||||||
|
if (k > 9) k=1;
|
||||||
|
}
|
||||||
|
init_ptrs();
|
||||||
|
char c;
|
||||||
|
while (c = getchar(), c != '\n'); // skip lines
|
||||||
|
while (c = getchar(), c != '\n'); // skip lines
|
||||||
|
int q, src, dst;
|
||||||
|
while (scanf("move %d from %d to %d\n", &q, &src, &dst) != EOF) {
|
||||||
|
move(src,dst,q);
|
||||||
|
}
|
||||||
|
for (int i=1; i<10; i++)
|
||||||
|
putchar(stack[ptr[i]]);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
33
06.c
Normal file
33
06.c
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
|
char c[5];
|
||||||
|
|
||||||
|
int is_equal () {
|
||||||
|
return !(c[0] == c[1] || c[0] == c[2] || c[0] == c[3] || c[1] == c[2] || c[1] == c[3] || c[2] == c[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main () {
|
||||||
|
int k = 0;
|
||||||
|
int j = 1;
|
||||||
|
char f;
|
||||||
|
c[5] = 0;
|
||||||
|
while (j < 5) {
|
||||||
|
c[k] = getchar();
|
||||||
|
k++;
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
|
||||||
|
while ((f = getchar()) != EOF) {
|
||||||
|
k %=4;
|
||||||
|
printf("%d %s f:%c\n",k,c,f);
|
||||||
|
if (is_equal()) break;
|
||||||
|
c[k] = f;
|
||||||
|
k++;
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
printf("%d\n", j-1);
|
||||||
|
|
||||||
|
}
|
42
06_02.c
Normal file
42
06_02.c
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
|
char c[15];
|
||||||
|
int mask = 0;
|
||||||
|
|
||||||
|
int is_equal () {
|
||||||
|
int j = 0;
|
||||||
|
mask = 0;
|
||||||
|
for (j=0; j<14; j++){
|
||||||
|
int n = c[j] - 'a';
|
||||||
|
if (mask & (1 << n))
|
||||||
|
return 0;
|
||||||
|
mask |= (1<<n);
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main () {
|
||||||
|
int k = 0;
|
||||||
|
int j = 1;
|
||||||
|
char f;
|
||||||
|
c[15] = 0;
|
||||||
|
while (j < 5) {
|
||||||
|
c[k] = getchar();
|
||||||
|
k++;
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
|
||||||
|
while ((f = getchar()) != EOF) {
|
||||||
|
k %=14;
|
||||||
|
printf("%d %s f:%c\n",k,c,f);
|
||||||
|
if (is_equal()) break;
|
||||||
|
c[k] = f;
|
||||||
|
k++;
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
printf("%d\n", j-1);
|
||||||
|
|
||||||
|
}
|
2
Makefile
2
Makefile
|
@ -3,6 +3,6 @@ all: bin $(programs)
|
||||||
bin:
|
bin:
|
||||||
mkdir bin
|
mkdir bin
|
||||||
bin/% : %.c
|
bin/% : %.c
|
||||||
gcc -o $@ $<
|
gcc -g -o $@ $<
|
||||||
clean :
|
clean :
|
||||||
rm $(programs)
|
rm $(programs)
|
||||||
|
|
Loading…
Reference in a new issue