face the right way

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);
}