library(tidyverse)
dat <- read.table("aoc01.txt")

Part 1

sortdat <- data.frame(V1 = sort(dat$V1), V2 = sort(dat$V2)) |>
  mutate(dist = abs(V1 - V2))
sum(sortdat$dist)
[1] 1590491

Part 2

tally_right <- dat |>
  group_by(V2) |>
  tally() |>
  rename(V1 = V2)
left <- dat |>
  select(V1) |>
  left_join(tally_right) |>
  replace_na(list(n = 0)) |>
  mutate(sim = V1 * n)
Joining with `by = join_by(V1)`
sum(left$sim)
[1] 22588371
LS0tDQp0aXRsZTogIkRheSAxOiBIaXN0b3JpYW4gSHlzdGVyaWEiDQphdXRob3I6IEFuZGlGDQpkYXRlOiAxIERlYyAyMDI0DQpvdXRwdXQ6IA0KICBodG1sX25vdGVib29rOiANCiAgICBjb2RlX2ZvbGRpbmc6IG5vbmUNCi0tLQ0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpgYGANCg0KDQpgYGB7cn0NCmRhdCA8LSByZWFkLnRhYmxlKCJhb2MwMS50eHQiKQ0KYGBgDQoNCg0KIyMjIFBhcnQgMQ0KDQpgYGB7cn0NCnNvcnRkYXQgPC0gZGF0YS5mcmFtZShWMSA9IHNvcnQoZGF0JFYxKSwgVjIgPSBzb3J0KGRhdCRWMikpIHw+DQogIG11dGF0ZShkaXN0ID0gYWJzKFYxIC0gVjIpKQ0Kc3VtKHNvcnRkYXQkZGlzdCkNCmBgYA0KDQoNCiMjIyBQYXJ0IDINCg0KYGBge3J9DQp0YWxseV9yaWdodCA8LSBkYXQgfD4NCiAgZ3JvdXBfYnkoVjIpIHw+DQogIHRhbGx5KCkgfD4NCiAgcmVuYW1lKFYxID0gVjIpDQpgYGANCg0KYGBge3J9DQpsZWZ0IDwtIGRhdCB8Pg0KICBzZWxlY3QoVjEpIHw+DQogIGxlZnRfam9pbih0YWxseV9yaWdodCkgfD4NCiAgcmVwbGFjZV9uYShsaXN0KG4gPSAwKSkgfD4NCiAgbXV0YXRlKHNpbSA9IFYxICogbikNCmBgYA0KDQpgYGB7cn0NCnN1bShsZWZ0JHNpbSkNCmBgYA0KDQo=