fn main() { let ccount = 1000; let csize = 10; let n = csize * ccount + 1; let mut ans = Vec::new(); for offset in (0..ccount).map(|cid| cid * csize) { ans.extend( [ (0, 1), (0, 2), (0, 3), (1, 4), (1, 5), (2, 6), (2, 7), (3, 8), (3, 9), ] .iter() .map(|(i, j)| (i + offset, j + offset)), ); ans.push((n - 1, offset)); } println!("{n}"); for (i, j) in ans { let i = i + 1; let j = j + 1; println!("{i} {j}"); } }