/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
static int privmax = 1;
{
//decide the start
if(input.charAt(0)=='I')
{
sol+="1";
}
else
{
sol+=(1+getDcount(0,input));
}
for(int i=0;i<input.length();i++)
{
//For ith character of the string
getDigit(i,input);
}
}
public static void getDigit
(int i,
String input
) {
if(input.charAt(i)=='I')
{
int x = getDcount(i+1,input);
privmax
= Math.
max(privmax
+x
+1,prev
+x
+1); sol+=(privmax);
}
else
{
sol+=(prev-1);
privmax
= Math.
max(privmax,prev
); }
System.
out.
println("Value of sol = "+sol
);
}
static int getDcount
(int index ,
String input
) {
int cnt = 0;
while(index < input.length())
{
if(input.charAt(index)=='D')
{
cnt++;
index++;
}
else
break;
}
return cnt;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCQkJc3RhdGljIFN0cmluZyBzb2wgPSAiIjsKCQkJc3RhdGljIGludCBwcml2bWF4ID0gMTsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCQoJCVN0cmluZyBpbnB1dCA9ICJESURJIjsKCQkKCQkvL2RlY2lkZSB0aGUgc3RhcnQKCQlpZihpbnB1dC5jaGFyQXQoMCk9PSdJJykKCQl7CgkJCQlzb2wrPSIxIjsKCQl9CgkJZWxzZQoJCXsKCQkJc29sKz0oMStnZXREY291bnQoMCxpbnB1dCkpOwoJCX0KCQkKCQlmb3IoaW50IGk9MDtpPGlucHV0Lmxlbmd0aCgpO2krKykKCQl7CgkJCS8vRm9yIGl0aCBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZwoJCQlnZXREaWdpdChpLGlucHV0KTsKCQkJCQoJCX0KCQkKCQlTeXN0ZW0ub3V0LnByaW50bG4oc29sKTsKCQkKCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIGdldERpZ2l0KGludCBpLFN0cmluZyBpbnB1dCkKCXsKCQlpbnQgcHJldiA9IEludGVnZXIucGFyc2VJbnQoU3RyaW5nLnZhbHVlT2Yoc29sLmNoYXJBdChpKSkpOwoJCQoJCWlmKGlucHV0LmNoYXJBdChpKT09J0knKQoJCXsKCQkJaW50IHggPSBnZXREY291bnQoaSsxLGlucHV0KTsKCQkJCgkJCXByaXZtYXggPSBNYXRoLm1heChwcml2bWF4K3grMSxwcmV2K3grMSk7IAoJCQlzb2wrPShwcml2bWF4KTsKCQkJCgkJfQoJCWVsc2UKCQl7CgkJCXNvbCs9KHByZXYtMSk7CgkJCXByaXZtYXggPSBNYXRoLm1heChwcml2bWF4LHByZXYpOwkJCQoJCX0KCQkKCQlTeXN0ZW0ub3V0LnByaW50bG4oIlZhbHVlIG9mIHNvbCA9ICIrc29sKTsKCQkKCX0KCQoJc3RhdGljIGludCBnZXREY291bnQoaW50IGluZGV4ICwgU3RyaW5nIGlucHV0KQoJewoJCWludCBjbnQgPSAwOwoJCXdoaWxlKGluZGV4IDwgaW5wdXQubGVuZ3RoKCkpCgkJewoJCQlpZihpbnB1dC5jaGFyQXQoaW5kZXgpPT0nRCcpCgkJCXsKCQkJCWNudCsrOwoJCQkJaW5kZXgrKzsKCQkJfQoJCQllbHNlCgkJCQlicmVhazsKCQl9CgkJcmV0dXJuIGNudDsKCX0KCQp9