Part 1 — Transform to palindromic k-periodic string: Input: a lowercase string currentPassword and integer k. Constraints: 1 <= k < len(currentPassword) <= 2*10^5, and len(currentPassword) is divisible by k. Operation: you may change any character to any lowercase letter; the cost is the number of positions changed. Goal: convert currentPassword to newPassword such that (a) newPassword is a palindrome, and (b) newPassword[i] = newPassword[i + k] for all valid i (0-based). Return the minimum number of character changes required and describe the algorithm with time and space complexity. Example: currentPassword = "abzzbz", k = 3 → one optimal newPassword is "zbzzbz"; answer = 1.
Part 2 — Minimize processing cost with daily discount: Input: integer n; arrays filterCost[1..n], startDay[1..n], endDay[1..n]; and integer discountPrice. For each day d, the set of active images is { i | startDay[i] <= d <= endDay[i] }. Without a discount, day d costs sum(filterCost[i] over active images i). You may apply the discount at most once per day; if applied on day d, the total cost that day is exactly discountPrice. Goal: process all n images over their required day ranges to minimize the total cost across all days; return the minimum total cost modulo 1,000,000,007. Provide the algorithm and its time and space complexity. Example: n = 3; filterCost = [2,3,4]; startDay = [1,1,2]; endDay = [2,3,4]; discountPrice = 6. Per-day sums: day1=5, day2=9, day3=7, day4=4. Using the discount on days 2 and 3 gives total 5 + 6 + 6 + 4 = 21.