cf 50B Choosing Symbol Pairs 水

来源:互联网 发布:java读取excel文件poi 编辑:程序博客网 时间:2024/05/20 20:19

题目链接:http://codeforces.com/problemset/problem/50/B

B. Choosing Symbol Pairs
time limit per test
2 seconds
memory limit per test
256 megabytes

There is a given string S consisting ofN symbols. Your task is to find the number of ordered pairs of integersi and j such that

1. 1 ≤ i, j ≤ N

2. S[i] = S[j], that is thei-th symbol of string S is equal to the j-th.

Input

The single input line contains S, consisting of lowercase Latin letters and digits. It is guaranteed that stringS in not empty and its length does not exceed105.

Output

Print a single number which represents the number of pairs i and j with the needed property. Pairs(x, y) and (y, x) should be considered different, i.e. the ordered pairs count.

Examples
Input
great10
Output
7
Input
aaaaaaaaaa
Output
100
题意:输入一个字符串,判断有多少对是相同的。包括自己和自己这一对。并且(x,y)和(y,x)是不相同的一队

注意:long long

代码:(双元同学的啦啦啦

#include<cstdio>#include<iostream>#include<string>#include<cstring>const int  maxn = 100000 + 10;char s[maxn];long long a[maxn];using namespace std;int main(){while (scanf("%s", s) != EOF) {memset(a, 0, sizeof(a));long long  sum = 0;long long  len = strlen(s);for (int i = 0; i < len; i++) {if (s[i] >= 'a'&&s[i] <= 'z')a[s[i] - 'a']++;elsea[s[i] - '0' + 26]++;}for (int i = 0; i <= 35; i++)sum += a[i] * a[i];cout << sum << endl;}return 0;}



0 0