CSES - Datatähti 2016 alku - Results
Submission details
Task:Osajono
Sender:hugo-hur
Submission time:2015-10-04 21:56:24 +0300
Language:C++
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED27
#3ACCEPTED61
Test results
testverdicttimegroup
#1ACCEPTED0.05 s1details
#2ACCEPTED0.06 s1details
#3ACCEPTED0.05 s1details
#4ACCEPTED0.05 s1details
#5ACCEPTED0.06 s1details
#6ACCEPTED0.06 s2details
#7ACCEPTED0.06 s2details
#8ACCEPTED0.05 s2details
#9ACCEPTED0.06 s2details
#10ACCEPTED0.06 s2details
#11ACCEPTED0.05 s3details
#12ACCEPTED0.05 s3details
#13ACCEPTED0.06 s3details
#14ACCEPTED0.05 s3details
#15ACCEPTED0.05 s3details

Code

#include <iostream>
#include <string>
#include <string.h>
#include <stdio.h>
#include <algorithm>
//using namespace std;

unsigned long loweringSum(unsigned long i){
	//i>0
	if (i == 0){ return 0; }
	if (i == 1){ return 1; }
	unsigned long input = i;
	unsigned long output = i;
	while (input>0){
		input--;
		output += input;
	}
	return output;
}

int main() {
	std::cin.sync_with_stdio(false);//Faster execution

	//char str[100001];
	std::string stro;
	//std::cin.getline(stro, 100001);//Gets the line entered and moves it to string
	std::cin >> stro;
	//char* str = (char*)stro.c_str();
	//unsigned int strLen = (unsigned)strlen(str);
	unsigned long osajonot = stro.length();

	//Iteroi merkkijonoa
	/*for(unsigned int startIndex = 0; startIndex < (strLen - 1); startIndex++){//This takes too much time when going to 100k chars boundary
	//char atStart = str[startIndex];//s.at(startIndex);
	for(unsigned int i = startIndex + 1; i < strLen; i++){
	if(str[i] == str[startIndex]){
	osajonot++;
	}
	}
	}*/
	//std::sort(str, str + strLen /*- 1*/);

	for (char c = 'A'; c <= 'Z'; c++){
		unsigned long NumOfOccurences = std::count(stro.begin(), stro.end(), c);
		if (NumOfOccurences > 0){
			osajonot += loweringSum(NumOfOccurences - 1);// - sorted.find(c);
		}
		
	}
	std::cout << osajonot << std::endl;
	return 0;
}

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