Pagini recente » Cod sursa (job #2631653) | Cod sursa (job #3161106) | Cod sursa (job #725094) | Profil CNITV_COMAN_REBEGEA_TULBA | Cod sursa (job #123491)
Cod sursa(job #123491)
#include<stdio.h>
#include<string.h>
struct nod{long int st;long int dr;nod *next;};
nod *prim,*ultim,*pp;
char *s,sir[1000005];
long int ll,i,sst,ddr,sol;
void init1();
void init2();
void ad();
int main()
{
FILE *f,*g;f=fopen("pscpld.in","r");g=fopen("pscpld.out","w");
s=&sir[1];fscanf(f,"%s",s);
ll=strlen(s);sir[ll+1]='*';sir[0]='#';
prim=new nod;prim->st=1;prim->dr=1;prim->next=0;ultim=prim;
for(i=2;i<=ll;i++)init1();
for(i=1;i<=ll;i++)if(sir[i]==sir[i+1])init2();
while(prim)
{ sol++;
if(sir[prim->st-1]==sir[prim->dr+1])ad();
pp=prim;prim=prim->next;delete pp;
}
fprintf(g,"%ld\n",sol);
return 0;
}
void init1()
{
nod *paux;paux=new nod;
paux->st=i;paux->dr=i;paux->next=0;
ultim->next=paux;ultim=paux;
}
void init2()
{
nod *paux;paux=new nod;
paux->st=i;paux->dr=i+1;paux->next=0;
ultim->next=paux;ultim=paux;
}
void ad()
{
nod *paux;paux=new nod;
paux->st=prim->st-1;paux->dr=prim->dr+1;paux->next=0;
ultim->next=paux;ultim=paux;
}