CSES - Datatähti 2016 alku - Results
Submission details
Task:Osajono
Sender:Destroy();
Submission time:2015-09-29 19:02:36 +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.05 s2details
#7ACCEPTED0.06 s2details
#8ACCEPTED0.05 s2details
#9ACCEPTED0.06 s2details
#10ACCEPTED0.06 s2details
#11ACCEPTED0.05 s3details
#12ACCEPTED0.06 s3details
#13ACCEPTED0.06 s3details
#14ACCEPTED0.05 s3details
#15ACCEPTED0.07 s3details

Code

#include <iostream>
#include <algorithm>
#include <string>

using namespace std;

void solve(int paikka, string a, long long lkm)
{
	long long s = 0;
	char kirjain = a.at(paikka);

	int i = paikka;

	while (a.at(i) == kirjain)
	{
		s += 1;
		//cout << "s on: " << s << '\n';
		if (i == (int)a.size()-1)
		{
			//cout << "break" << '\n';
			break;
		}
		else
		{
			//cout << "While kierros loppuu" << '\n';
			i++;
		}
	}
	//cout << "Alkupaikka: " << paikka << "\n";
	
	//cout << "s on: " << s << '\n';
	lkm += (s*(1 + s) / 2);
	//cout << "nykyinen vastaus: " << lkm << '\n';

	//cout << "i: " << i << "\n";
	if (i == (int)a.size() - 1)
	{
		if (i > 0)
		{
			if (a.at(i) != a.at(i - 1))
				lkm += 1;
		}
		cout << lkm << '\n';
	}
	else
	{
		//cout << "uusi kierros" << '\n';
		solve(i, a, lkm);
	}

}

int main() {
	ios_base::sync_with_stdio(0);

	string a;
	getline(cin, a);
	//int koko = a.size();

	sort(a.begin(), a.end());
	//cout << "uusi world order: " << a << '\n';

	solve(0, a, 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