add day 25
solved by claude
This commit is contained in:
Generated
+7
@@ -0,0 +1,7 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 4
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "day25"
|
||||||
|
version = "0.1.0"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
[package]
|
||||||
|
name = "day25"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2024"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
fn main() {
|
||||||
|
let row: u64 = 3010;
|
||||||
|
let col: u64 = 3019;
|
||||||
|
|
||||||
|
let d = row + col - 1;
|
||||||
|
let index = d * (d - 1) / 2 + col; // 1-indexed position, (1,1) -> 1
|
||||||
|
|
||||||
|
const START: u64 = 20151125;
|
||||||
|
const MUL: u64 = 252533;
|
||||||
|
const MOD: u64 = 33554393;
|
||||||
|
|
||||||
|
let code = (START * mod_pow(MUL, index - 1, MOD)) % MOD;
|
||||||
|
println!("{}", code);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn mod_pow(mut base: u64, mut exp: u64, modulus: u64) -> u64 {
|
||||||
|
let mut result = 1u64;
|
||||||
|
base %= modulus;
|
||||||
|
while exp > 0 {
|
||||||
|
if exp & 1 == 1 {
|
||||||
|
result = result * base % modulus;
|
||||||
|
}
|
||||||
|
exp >>= 1;
|
||||||
|
base = base * base % modulus;
|
||||||
|
}
|
||||||
|
result
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user