05: C: Slightly faster
This commit is contained in:
parent
af88bca186
commit
63c5701254
|
@ -29,7 +29,25 @@ int main(void) {
|
||||||
int i, n, N = 0, A, f, t;
|
int i, n, N = 0, A, f, t;
|
||||||
|
|
||||||
while (fgets(l, BUFSIZ, stdin)) {
|
while (fgets(l, BUFSIZ, stdin)) {
|
||||||
if ((e = strrchr(l, ']'))) {
|
if (l[0] == 'm') {
|
||||||
|
n = strtol(l + 5, &e, 10);
|
||||||
|
f = strtol(e + 6, &e, 10) - 1;
|
||||||
|
t = atoi(e + 4) - 1;
|
||||||
|
|
||||||
|
alloc_crates(stacksA[t], n)
|
||||||
|
tf = crate_pos(stacksA[f], -1);
|
||||||
|
tc = crate_pos(stacksA[t], -n);
|
||||||
|
for (i = 0; i < n; i++)
|
||||||
|
tc[i] = tf[-i];
|
||||||
|
stacksA[f].len -= n;
|
||||||
|
|
||||||
|
alloc_crates(stacksB[t], n)
|
||||||
|
tf = crate_pos(stacksB[f], -n);
|
||||||
|
tc = crate_pos(stacksB[t], -n);
|
||||||
|
for (i = 0; i < n; i++)
|
||||||
|
tc[i] = tf[i];
|
||||||
|
stacksB[f].len -= n;
|
||||||
|
} else if ((e = strrchr(l, ']'))) {
|
||||||
if (e > m) {
|
if (e > m) {
|
||||||
m = e;
|
m = e;
|
||||||
A = (m - l) / 4 + 1;
|
A = (m - l) / 4 + 1;
|
||||||
|
@ -49,26 +67,6 @@ int main(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (l[0] == 'm') {
|
|
||||||
n = strtol(l + 5, &e, 10);
|
|
||||||
f = strtol(e + 6, &e, 10) - 1;
|
|
||||||
t = atoi(e + 4) - 1;
|
|
||||||
|
|
||||||
alloc_crates(stacksA[t], n)
|
|
||||||
tf = crate_pos(stacksA[f], -1);
|
|
||||||
tc = crate_pos(stacksA[t], -n);
|
|
||||||
for (i = 0; i < n; i++)
|
|
||||||
tc[i] = tf[-i];
|
|
||||||
stacksA[f].len -= n;
|
|
||||||
|
|
||||||
alloc_crates(stacksB[t], n)
|
|
||||||
tf = crate_pos(stacksB[f], -n);
|
|
||||||
tc = crate_pos(stacksB[t], -n);
|
|
||||||
for (i = 0; i < n; i++)
|
|
||||||
tc[i] = tf[i];
|
|
||||||
stacksB[f].len -= n;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Silver: ");
|
printf("Silver: ");
|
||||||
|
|
Loading…
Reference in New Issue