#include<stdio.h>
#include<string.h>

void eskeip(){
if (scanf("%c")=='\x1B') exit(0);
}

void beklager(){
printf("Beklager, intern regnefeil");
}

int main(int antall, char * tabell[]){

eskeip();

unsigned int i=1;
unsigned short int innuttab[3]={0,0,0};

if(antall>=2){
  while(i<antall && tabell[i][0]=='-' && tabell[i][1]=='-'){
    if(strcmp(tabell[i], "--ingenvalg")==0){
      i++;
      break;
      }
    else if(strcmp(tabell[i], "--innfil")==0){
      tabell[1][1]='i';
      i++;
      innuttab[0]=i;
      }
    else if(strcmp(tabell[i], "--alfabet")==0) tabell[1][2]='a';
    else if(strcmp(tabell[i], "--tilfeldig")==0) tabell[1][2]='r';
    else if(strcmp(tabell[i], "--utfil")==0){
      tabell[1][3]='u';
      i++;
      innuttab[1]=i;
      }
    else if(strcmp(tabell[i], "--stille")==0) innuttab[2]=1;
    i++;
  }
}

//første ikkeparameter =tabell[i]

//printf("%s\n", tabell[1]);	//bare for testing


if(antall>=1 && tabell[1][0]=='-'){

if(i==1 && tabell[1][0]=='-') i=2; //fordi første ord i sa fall er parameter

if(tabell[1][1]=='i') printf("innfil=%s\n", tabell[innuttab[0]]);

if(tabell[1][2]=='a'){
  unsigned int a=i;
  unsigned int b;
  while(a<antall){
    b=a+1;
    while(b<antall){
      if(strcmp(tabell[a], tabell[b])>0){
        tabell[1]=tabell[a];
        tabell[a]=tabell[b];
        tabell[b]=tabell[1];
      }
      b++;
    }
    a++;
  }
}

else if(tabell[1][2]=='r'){
  srand((unsigned)time( NULL ));
  unsigned int a=antall, tilf;
  char * tabell2[antall];
  while(a>i){
    tilf=i+(rand() % (a-i));
    tabell2[a-1]=tabell[tilf];
    a--;
    while(tilf<antall){
    tabell[tilf]=tabell[tilf+=1];
    }
  }
  if(a!=i) beklager();
  while(a<antall){
    tabell[a]=tabell2[a];
    a++;
  }
}

if(tabell[1][3]=='u') printf("utfil=%s\n", tabell[innuttab[1]]);

}

printf("%d\n", antall-i);

if(i==1 || (tabell[1][3]!='u' && innuttab[2]==0)){
  while(i<antall){
    printf("%s ", tabell[i]);
    i++;
  }
  if(antall!=i) beklager();
  printf("\n");
}

return 0;
}


