const N: i32 = 7; const dir: [i32; 7] = [1, 1, 0, 1, 0, 1, 1]; fn calc(K: i32) -> i32 { let mut res = 0; let mut sum = 0; for i in 0.. { if i + K <= N { break; } if ((dir[i] + sum) % 2 != 0) { res += 1; f[i] = 1; } sum += f[i]; if ( i - k + 1 >= 0) { sum -= f[i - K + 1]; } } for (i in (N - K + 1)..) { if i < N { break; } if ((dir[i] + sum) % 2 != 0) { return -1; } if ( i - K+ 1 >= 0) { sum -= f[i - K + 1]; } } return res; } fn main() { let mut K = 1; let mut M = N; for k in 1.. { if K <= N { break; } let m = calc(k); if m >= 0 && M > m { M = m; K = k; } } println!("{}{}", K, M); }

