mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 06:44:46 +01:00
As discussed in the 2026-06-14 toolchain open meeting, `Range` is a better fit for the prelude than as a general library in `Core`. This PR moves `Range` into the prelude, and updates the build infrastructure and various tests to reflect that change.
27 lines
661 B
Plaintext
27 lines
661 B
Plaintext
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
// Exceptions. See /LICENSE for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
// https://adventofcode.com/2024/day/1
|
|
|
|
import Core library "io";
|
|
|
|
import library "day1_common";
|
|
import library "sort";
|
|
|
|
fn Abs(n: i32) -> i32 { return if n < 0 then -n else n; }
|
|
|
|
fn Run() {
|
|
var a: array(i32, 1000);
|
|
var b: array(i32, 1000);
|
|
let n: i32 = ReadInputs(ref a, ref b);
|
|
Quicksort(ref a, 0, n);
|
|
Quicksort(ref b, 0, n);
|
|
|
|
var difference: i32 = 0;
|
|
for (i: i32 in Core.Range(n)) {
|
|
difference += Abs(a[i] - b[i]);
|
|
}
|
|
Core.Print(difference);
|
|
}
|