Cod sursa(job #172740)

Utilizator alecmanAchim Ioan Alexandru alecman Data 6 aprilie 2008 18:27:31
Problema Litere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>

#define INPUT "litere.in"
#define OUTPUT "litere.out"
#define NMAX 10001

FILE *fin = fopen(INPUT, "r"), *fout = fopen(OUTPUT, "w");

int N;

char sir[ NMAX ];

long util[ NMAX ], final[ NMAX ];

void readValues();

void solveFunction();

void reInit();

int main()
{
  readValues();

  solveFunction();

  fclose(fin);
  fclose(fout);

  return 0;
}

void readValues()
{
  fscanf(fin, "%d", &N);

  fscanf(fin, "%s", &sir);
}

void solveFunction()
{
  long nrFin = 0;

  reInit();

  for(int i = 0; i < N; ++i)
  {
    nrFin += util[ sir[ i ] - 'a' + 1 ];

    ++final[ sir[ i ] - 'a' ];

    reInit();
  }

  fprintf(fout, "%ld\n", nrFin);
}

void reInit()
{
  util[ 25 ] = final[ 25 ];

  for(int i = 24; i >= 0; --i)
    util[ i ] = util[ i + 1] + final[ i ];
}