Compare commits
No commits in common. "2dd97d116fc2c6f008ffb652bfb41a629b2dd47f" and "afb9849c3cf84010624a2703b080dcc1cd8ec47a" have entirely different histories.
2dd97d116f
...
afb9849c3c
|
@ -1,58 +0,0 @@
|
||||||
type Race = {
|
|
||||||
time: number;
|
|
||||||
distance: number;
|
|
||||||
};
|
|
||||||
const races: Race[] = [];
|
|
||||||
|
|
||||||
// const input = `Time: 47 70 75 66
|
|
||||||
// Distance: 282 1079 1147 1062`.split("\n");
|
|
||||||
|
|
||||||
const input = `Time: 47707566
|
|
||||||
Distance: 282107911471062`.split("\n");
|
|
||||||
|
|
||||||
// parse input
|
|
||||||
const [t, ...rtimes] = input[0].split(" ");
|
|
||||||
const times = rtimes.filter((o) => o !== "").map((o) => Number(o));
|
|
||||||
const [d, ...rdist] = input[1].split(" ");
|
|
||||||
const dist = rdist.filter((o) => o !== "").map((o) => Number(o));
|
|
||||||
|
|
||||||
for (let i = 0; i < times.length; i++) {
|
|
||||||
races.push({ time: times[i], distance: dist[i] });
|
|
||||||
}
|
|
||||||
console.log(races);
|
|
||||||
|
|
||||||
function getSpeed(race: Race, holdTime: number): number {
|
|
||||||
return (race.time - holdTime) * holdTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
const counts: number[] = [];
|
|
||||||
|
|
||||||
for (const race of races) {
|
|
||||||
let from = 1;
|
|
||||||
let to = 1;
|
|
||||||
for (let i = 0; i < race.time; i++) {
|
|
||||||
if (getSpeed(race, i) > race.distance) {
|
|
||||||
from = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (let i = race.time; i >= 0; i--) {
|
|
||||||
if (getSpeed(race, i) > race.distance) {
|
|
||||||
to = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
counts.push(to - from + 1);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
let mul = 1;
|
|
||||||
for (const count of counts) {
|
|
||||||
mul *= count;
|
|
||||||
}
|
|
||||||
console.log(mul);
|
|
||||||
|
|
||||||
// console.log(getSpeed(races[0], 2));
|
|
||||||
// console.log(getSpeed(races[0], 3));
|
|
||||||
// console.log(getSpeed(races[0], 4));
|
|
||||||
// console.log(getSpeed(races[0], 5));
|
|
Loading…
Reference in New Issue
Block a user