Submission details
Task:Osajono
Sender:hello_world
Submission time:2015-09-30 21:24:14 +0300
Language:C++
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED27
#3ACCEPTED61
Test results
testverdicttimegroup
#1ACCEPTED0.05 s1details
#2ACCEPTED0.05 s1details
#3ACCEPTED0.05 s1details
#4ACCEPTED0.06 s1details
#5ACCEPTED0.06 s1details
#6ACCEPTED0.06 s2details
#7ACCEPTED0.06 s2details
#8ACCEPTED0.05 s2details
#9ACCEPTED0.05 s2details
#10ACCEPTED0.05 s2details
#11ACCEPTED0.06 s3details
#12ACCEPTED0.06 s3details
#13ACCEPTED0.06 s3details
#14ACCEPTED0.05 s3details
#15ACCEPTED0.06 s3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:29:7: warning: unused variable 'j' [-Wunused-variable]
   int j;
       ^
input/code.cpp:28:23: warning: ignoring return value of 'char* fgets(char*, int, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   fgets(s, 256, stdin);
                       ^

Code

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

#define A int('A')

using namespace std;

unsigned long calculate();
void calculateLetters(char s[256]);

struct Letters{
	int l[25];
};
Letters letters; 

int length;

int main(void){
	
	int i = 25;
	while(i--) letters.l[i] = 0;
	
	char s[256];
	while(true){
		fgets(s, 256, stdin);
		int j;
		if (s[length = strlen(s) - 1] == '\n'){
			s[length] = '\0';
			calculateLetters(s);
			break;
		}  length++;
		calculateLetters(s);
	}
	
	unsigned long sum = calculate();
	
	cout << sum;

	return 0;
	
}

void calculateLetters(char s[256]){
	unsigned int l = length;
	while(l--) letters.l[(s[l] - A)]++;
}

unsigned long calculate(){

	unsigned long sum = 0;
	unsigned long lsum;
	
	unsigned int l = length;
	
	while (l--){
		if (letters.l[l]){
			lsum = letters.l[l] + 1;
			lsum = ((lsum*lsum) - lsum) / 2;
			sum += lsum;
		}
	}
		
	return sum;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
BBBAABBBAAAABBAAAABAABAABBBBBB...

correct output
2554

user output
2554

Test 2

Group: 1

Verdict: ACCEPTED

input
GDFVYWQCZAFGICSXOSWBZMGPDBSSVL...

correct output
299

user output
299

Test 3

Group: 1

Verdict: ACCEPTED

input
AAAAAAAAAAAAAAAAAAAAAAAAAZAAAA...

correct output
4314

user output
4314

Test 4

Group: 1

Verdict: ACCEPTED

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
4231

user output
4231

Test 5

Group: 1

Verdict: ACCEPTED

input
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...

correct output
5050

user output
5050

Test 6

Group: 2

Verdict: ACCEPTED

input
BBABABBBABBAABBABBABAABAAABABA...

correct output
6253029

user output
6253029

Test 7

Group: 2

Verdict: ACCEPTED

input
RBKJMLDVQMKHYKCNDIVVKOMFUXTFMG...

correct output
485173

user output
485173

Test 8

Group: 2

Verdict: ACCEPTED

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
12427725

user output
12427725

Test 9

Group: 2

Verdict: ACCEPTED

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
12467549

user output
12467549

Test 10

Group: 2

Verdict: ACCEPTED

input
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...

correct output
12502500

user output
12502500

Test 11

Group: 3

Verdict: ACCEPTED

input
BAAAAABABBABAABAABABABBBABBAAB...

correct output
2500051369

user output
2500051369

Test 12

Group: 3

Verdict: ACCEPTED

input
ABBURXDRVXAYBPXXOQZNYHLWGUEEWR...

correct output
192407124

user output
192407124

Test 13

Group: 3

Verdict: ACCEPTED

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
4998050400

user output
4998050400

Test 14

Group: 3

Verdict: ACCEPTED

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
4998850144

user output
4998850144

Test 15

Group: 3

Verdict: ACCEPTED

input
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...

correct output
5000050000

user output
5000050000