using System; using System.Collections.Generic; public class InputStrorage { public char[] encrypted; } public static class InputHandler { public static void ReadInput(InputStrorage input) { string str = Console.ReadLine(); input.encrypted = str.ToCharArray(); } } namespace GeneralLibs { public class Compare { public static long ReturnMax(long a, long b) { if (a > b) return a; else return b; } public static long ReturnMax(long[] a) { long max = long.MinValue; for (int i = 0; i < a.Length; i++) { if (a[i] > max) max = a[i]; } return max; } } public class ShowValues { public static void ShowArray1D(long[] a, string str = "default") { Console.WriteLine(str); for (int i = 0; i < a.Length; i++) { Console.Write("{0} ", a[i]); } Console.WriteLine(); Console.WriteLine(str); } public static void ShowValue(long a, string str = "default") { Console.WriteLine("{0} : {1}", a, str); } } } public class SpecificLibs { public static char[] DecryptString(char[] input) { char[] result = new char[input.Length]; for(int i = 0; i < input.Length; i++) { int shift = (i + 1) % 26; int code = (int)input[i]; code -= shift; if (code < 65) { code = 90 - (65 - code - 1); } result[i] = (char)code; } return result; } } static class No18 { static void Main() { InputStrorage input = new InputStrorage(); InputHandler.ReadInput(input); //A=65, Z = 90; string ans = new string (SpecificLibs.DecryptString(input.encrypted)); Console.WriteLine(ans); } }