Pagini recente » Cod sursa (job #322389) | Cod sursa (job #618903) | Cod sursa (job #174132) | Cod sursa (job #1562020) | Cod sursa (job #3159727)
#include <iostream>
#include <fstream>
using namespace std;
char n,cur,prec;
unsigned int i,lung,v[100002],cerinta, st[100002], nr1, nr2, nr3, vf;/// 1=">" 0="<"
long long s;
unsigned int maxi,aux,alt,ok;
int maxim(int a, int b)
{
if (a>b)
return a;
return b;
}
int main()
{
ifstream f("charlie.in");
ofstream g("charlie.out");
f>>cerinta;
///cerinta 1
if(cerinta==1)
{
f>>prec;
while(f>>cur)
{
if(prec>cur)
v[++i]=1;
else
v[++i]=0;
prec=cur;
lung++;
}
for(i=1; i<=lung; i++)
cout<<v[i]<<' ';
i=1;
while(i<lung)
{
ok=0;
aux=1;
while(v[i]==0)
i++;
for(i; i<lung && !ok; i++)
if(v[i]!=v[i+1])
aux++;
else
ok=1;
if(aux>maxi)
if(aux%2==1)
maxi=aux;
else
maxi=aux+1;
}
if(aux>maxi)
if(aux%2==1)
maxi=aux;
else
maxi=aux+1;
g<<maxi;
}
else
{
while(!f.eof())
{
f>>cur;
nr3 = cur-96;
cout << cur << ' ';
st[++vf]=nr3;
while (vf>=3&&st[vf-2]>st[vf-1]&&st[vf]>st[vf-1])
{
s+=maxim(st[vf], st[vf-2]);
st[vf-1]=st[vf];
--vf;
}
}
for (i=1; i<vf; ++i)
g << char(st[i]+96);
g << '\n';
g << s;
}
f.close();
g.close();
return 0;
}