string lastSubstring(string s) {
char c='a';
int id=0;
string res=" ";
string str;
int j,k,i;
vector<int> idx;
for(i=0;i<s.length();i++)
{
if(s[i]>c)
{
c=s[i];
}
}
for(i=0;i<s.length();i++)
{
if(s[i]==c)
{
idx.push_back(i);
}
}
int n=s.length();
if(idx.size()==1)
{
res=s.substr(idx[0],s.length()-idx[0]);
return res;
}
i=idx[0],j=idx[1],k=0,id=1;
while((i+k)<n&&(j+k)<n)
{
if(s[i+k]==s[j+k])
{
k++;
}
else if(s[i+k]<s[j+k])
{
i=j;
j=i+1;
k=0;
}
else if(s[i+k]>s[j+k])
{
j=j+k+1;
k=0;
}
}
res=s.substr(i,s.length()-i);
return res;
}
c3RyaW5nIGxhc3RTdWJzdHJpbmcoc3RyaW5nIHMpIHsKICAgICAgICBjaGFyIGM9J2EnOwogICAgICAgIGludCBpZD0wOwogICAgICAgIHN0cmluZyByZXM9IiAiOwogICAgICAgIHN0cmluZyBzdHI7CiAgICAgICAgaW50IGosayxpOwogICAgICAgIHZlY3RvcjxpbnQ+IGlkeDsKICAgICAgICBmb3IoaT0wO2k8cy5sZW5ndGgoKTtpKyspCiAgICAgICAgewogICAgICAgICAgICBpZihzW2ldPmMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGM9c1tpXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IoaT0wO2k8cy5sZW5ndGgoKTtpKyspCiAgICAgICAgewogICAgICAgICAgICBpZihzW2ldPT1jKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZHgucHVzaF9iYWNrKGkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGludCBuPXMubGVuZ3RoKCk7CiAgICAgICAgaWYoaWR4LnNpemUoKT09MSkKICAgICAgICB7CiAgICAgICAgICAgIHJlcz1zLnN1YnN0cihpZHhbMF0scy5sZW5ndGgoKS1pZHhbMF0pOwogICAgICAgICAgICByZXR1cm4gcmVzOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpPWlkeFswXSxqPWlkeFsxXSxrPTAsaWQ9MTsKICAgICAgICAKICAgICAgICB3aGlsZSgoaStrKTxuJiYoaitrKTxuKQogICAgICAgIHsKICAgICAgICAgICAgaWYoc1tpK2tdPT1zW2ora10pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGsrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHNbaStrXTxzW2ora10pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGk9ajsKICAgICAgICAgICAgICAgIGo9aSsxOwogICAgICAgICAgICAgICAgaz0wOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoc1tpK2tdPnNbaitrXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaj1qK2srMTsKICAgICAgICAgICAgICAgIGs9MDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXM9cy5zdWJzdHIoaSxzLmxlbmd0aCgpLWkpOwogICAgICAgIHJldHVybiByZXM7CiAgICB9