Skip to main content
1 of 18
user avatar
user avatar

C, 707 bytes

New lines and whitespace added for legibility:

u[256][256]={0};
char Y[2000];
char X[500]="u[256][256]={0};char Y[2000];char X[500]=\"@\";main(){int n,m,i,k;char*a=X,*b=X,*y=Y;for(;*a!=64;*y=*a,y++,a++);for(;*b;*y=*b,y++,b++){if(*b==92||*b==34){*y=92;y++;}}for(a++;*a;*y=*a,y++,a++);*y=0;for(a=Y;*a;a++)u[*a][*(a+1)]++;m='u';do{putchar(m);for(k=i=0;i<256;i++)k+=u[m][i];n=rand()%k;for(i=0;i<256;i++){if(n<u[m][i])break;n-=u[m][i];}m=i;}while(m);}";
main(){
    int n,m,i,k;
    char*a=X,*b=X,*y=Y;
    for(;*a!=64;*y=*a,y++,a++);
    for(;*b;*y=*b,y++,b++){if(*b==92||*b==34){*y=92;y++;}}
    for(a++;*a;*y=*a,y++,a++);*y=0;
    for(a=Y;*a;a++)u[*a][*(a+1)]++;
    m='u';
    do{ putchar(m);
        for(k=i=0;i<256;i++)k+=u[m][i];
        n=rand()%k;
        for(i=0;i<256;i++){
            if(n<u[m][i])break;
            n-=u[m][i];
        } m=i;
    }while(m);
}
user61383