using
System;
using
System.Collections;
using
System.Collections.Generic;
class
GFG
{
static
bool
isDivBy9(
char
c,
int
sum)
{
return
((((
int
)c - (
int
)(
'0'
)) + sum) % 9 == 0);
}
static
pair maxNumber(pair s1, String s2,
int
i)
{
if
(s1.second ==
null
){
return
s1;
}
int
x =
int
.Parse(s1.second);
if
(s1.first ==
null
){
return
s1;
}
if
(((
int
)(s1.first[x]) - (
int
)(
'0'
)) > ((
int
)s2[x] - (
int
)(
'0'
))){
return
s1;
}
pair map =
new
pair(s2, i.ToString());
return
map;
}
static
String findLargestNumber(String N,
int
len)
{
pair maxi =
new
pair(
""
,
"0"
);
int
sum = 0;
for
(
int
i = 0 ; i < len ; i++) {
sum += ((
int
)N[i] - (
int
)(
'0'
));
}
for
(
int
i = 0 ; i <= len ; i++) {
for
(
char
ch =
'0'
; ch <=
'9'
; ch++) {
if
((i == 0) && (ch ==
'0'
))
continue
;
if
(isDivBy9(ch, sum)) {
if
((maxi.first) ==
""
) {
maxi.first = N.Substring(0, i) + ch + N.Substring(i);
maxi.second = i.ToString();
}
else
{
maxi = maxNumber(maxi, N.Substring(0, i) + ch + N.Substring(i), i);
}
}
}
}
return
maxi.first;
}
public
static
void
Main(
string
[] args){
String N =
"12"
;
int
len = N.Length;
Console.Write(findLargestNumber(N, len));
}
}
public
class
pair{
public
String first;
public
String second;
public
pair(String first, String second){
this
.first = first;
this
.second = second;
}
}