Pagini recente » Cod sursa (job #2415840) | Monitorul de evaluare | Istoria paginii runda/ada16/clasament | Cod sursa (job #2325045) | Cod sursa (job #172740)
Cod sursa(job #172740)
#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 ];
}