import java.util.*; public class zigzagnametag_font { public static void main(String[] args) { new zigzagnametag_font(new Scanner(System.in)); } // Counts the maximum sum you can form using N characters where the // last character was in the range [0, 25]. (Works for N >= 0) int maxSum(int N, int lastCharacter) { if (N == 0) return 0; int firstSum = Math.max(25-lastCharacter, lastCharacter); firstSum += 25*(N-1); return firstSum; } public zigzagnametag_font(Scanner in) { int K = in.nextInt(); int N = (K+24)/25+1; // Find the first character that allows K to be reachable. StringBuilder sb = new StringBuilder(); int lastCharacter = -1; for (int k=0; k<26; k++) { int sum = maxSum(N-1, k); if (sum >= K) { sb.append((char)('a'+k)); lastCharacter = k; break; } } // No solution possible if (lastCharacter == -1) { System.out.println(-1); return; } // Do the same for the remaining N characters. for (int i=1; i= K; if (i == N-1) passed = sum == K; if (passed) { sb.append((char)('a'+k)); K -= Math.abs(lastCharacter-k); lastCharacter = k; break; } } } if (K != 0) System.out.println("Solution Broken"); System.out.println(sb); } }