Cod sursa(job #335061)

Utilizator ZillaMathe Bogdan Zilla Data 28 iulie 2009 16:02:53
Problema Branza Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <stdio.h>
#include <string.h>

#define Nmax 1001000

char c[Nmax],rez,next=1,lung=1,n;

int max(int a,int b)
{
    if(a>b)
        return a;
    return b;    
}

int main()
{
    freopen("password.in","r",stdin);
    freopen("password.out","w",stdout);
    gets(c);
    
    n=strlen(c);
        
            while( (next<n) && ((rez+lung+1)<n) )
                {
                    if(c[(rez+lung)%n]==c[(next+lung)%n]) ++lung;
                    else 
                    if(c[(rez+lung)%n]<c[(next+lung)%n]) 
                        {
                            next+=lung+1;
                            lung=0;
                        }
                    else
                        {
                            rez=max(rez+lung+1,next);
                            next=rez+1;
                            lung=0;
                        }
                }    
        
    printf("%d",rez);
    return 0;    
}