Pagini recente » Cod sursa (job #1291607) | Cod sursa (job #317252) | Monitorul de evaluare | Cod sursa (job #3337070) | Cod sursa (job #3338831)
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;
ifstream cin("charlie.in");
ofstream cout("charlie.out");
int p;
char s[100005];
void citire(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin>>p>>s;
}
void cerinta1(){
int lmax=0,l=1,n=strlen(s);
for(int i=1;i<n-1;i++){
if(s[i]<s[i-1]&&s[i]<s[i+1]){
l+=2;
i++;
}else{
if(l>lmax)lmax=l;
l=1;
}
}
if(l>lmax)lmax=l;
cout<<lmax;
}
void cerinta2(){
vector<char> v;
long long cost=0;
int n=strlen(s);
for(int i=0;i<n;i++){
v.push_back(s[i]);
while(v.size()>=3){
int sz=v.size();
if(v[sz-2]<v[sz-3]&&v[sz-2]<v[sz-1]){
cost+=max(v[sz-3]-'a'+1,v[sz-1]-'a'+1);
char ultimul=v.back();
v.pop_back();
v.pop_back();
v.push_back(ultimul);
}else break;
}
}
for(int i=0;i<v.size();i++)cout<<v[i];
cout<<'\n'<<cost;
}
int main(){
citire();
if(p==1)cerinta1();
else cerinta2();
return 0;
}