Pagini recente » Cod sursa (job #3273427) | Cod sursa (job #180329) | Cod sursa (job #843594) | Cod sursa (job #2281001) | Cod sursa (job #190383)
Cod sursa(job #190383)
#include <cstdio>
#include <cstring>
#define fin "litere.in"
#define fout "litere.out"
#define lastb(x) ( x & ( ~ ( x - 1 ) ) )
const int Nmax = 10200;
const int Cmax = 27;
int N,sum[Cmax],cnt;
char buff[Nmax];
void insert(int p)
{
int x;
for ( x = p; x < Cmax; x += lastb(x) )
++sum[x];
}
int query(int p)
{
int x,ret = 0;
for ( x = p; x > 0; x -= lastb(x) )
ret += sum[x];
return ret;
}
int main()
{
int i;
freopen(fin,"r",stdin);
freopen(fout,"w",stdout);
scanf("%d\n",&N);
fgets(buff,Nmax,stdin);
for ( i = 0; i < N; ++i )
{
insert(buff[i]-'a'+1);
cnt += query('z'-'a'+1) - query(buff[i]-'a'+1);
}
printf("%d\n",cnt);
return 0;
}