using System;
/*
string = "aaa"
After Shifting the first 1 letter by 1 = "baa"
After shifting the first 2 letters by 2 = "dca"
After shifting the first 3 letters 3 = "gfd"
result = "gfd"
*/
public class Program
{
internal static string shifLetters(string str, int[] shifts) {
int size = shifts.Length;
char[] arr = str.ToCharArray();
for (int i = size - 1; i >= 0; i--) {
if (i + 1 < size) {
shifts[i] += shifts[i + 1];
}
shifts[i] = shifts[i] % 26;
int asciicode = str[i] - 'a';
asciicode = asciicode + shifts[i];
if (asciicode > 25) {
asciicode = asciicode - 26;
}
arr[i] = (char)('a' + asciicode);
}
return new string(arr);
}
public static void Main(string[] args)
{
string str = "aaa";
int[] shifts = new int[] {1, 2, 3};
str = shifLetters(str, shifts);
Console.Write(str);
}
}
/*
run:
gfd
*/