using System; using System.Collections.Generic; using System.Collections; using System.Linq; namespace contest { class contest { static void Main(string[] args) { //int n = int.Parse(Console.ReadLine()); //var input = Console.ReadLine().Split().Select(int.Parse).ToArray(); //var n = int.Parse(Console.ReadLine()); //var input = Console.ReadLine().Split().Select(int.Parse).ToArray(); long n = long.Parse(Console.ReadLine()); long score = 0; var ch = new int[n.ToString().Length]; var memo = new int[10]; for(int i =0; i(); var check = new bool[n.ToString().Length]; for(int i = 9; i>=0; i--) { if ( memo[i]==0) continue; int tmp = 0; int target = i; if(target>0 ) { var mm = new int[3]; tmp += target; int ind = Array.IndexOf(arr,(char)(target+'0')); if (check[ind]) continue; var cp = arr.Skip(ind+1).Take(arr.Length - (ind + 1)).OrderByDescending(a => a).ToArray(); int cc = -1; for(int k =0; k1) { cc = aa; break; } } if (cc < 0) continue; mm[2] = ind; //check[ind] = true; for (int j = ind; j < arr.Length; j++) { int cur = arr[j]-'0'; if (cc != cur) continue; if (!check[j]&&target!=cur && memo[cur] > 1 && ch[j] < memo[cur] && tmp.ToString().Length == 1) { tmp *= 10; tmp += cur; mm[0] = j; //check[j] = true; } else if (!check[j]&& target!=cur&& tmp%10==cur&&memo[cur] > 1 && ch[j] <= memo[cur] && tmp.ToString().Length == 2) { tmp *= 10; tmp += cur; mm[1] = j; //check[j] = true; } if (tmp.ToString().Length == 3) break; } if(tmp.ToString().Length==3) { list.Add(tmp); check[mm[0]] = true; check[mm[1]] = true; check[mm[2]] = true; memo[tmp/100]--; memo[(tmp/10)%10]--; memo[tmp%10]--; } } } Console.WriteLine(list.Sum()); //Console.WriteLine(score); //Console.Read(); } } }