CSES - Datatähti 2016 alku - Results
Submission details
Task:Osajono
Sender:while(false)
Submission time:2015-09-29 14:09:30
Language:C++
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED27
#3ACCEPTED61
Test results
testverdicttimegroup
#1ACCEPTED0.05 s1details
#2ACCEPTED0.05 s1details
#3ACCEPTED0.05 s1details
#4ACCEPTED0.05 s1details
#5ACCEPTED0.05 s1details
#6ACCEPTED0.05 s2details
#7ACCEPTED0.07 s2details
#8ACCEPTED0.05 s2details
#9ACCEPTED0.06 s2details
#10ACCEPTED0.04 s2details
#11ACCEPTED0.05 s3details
#12ACCEPTED0.05 s3details
#13ACCEPTED0.06 s3details
#14ACCEPTED0.05 s3details
#15ACCEPTED0.06 s3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:22:24: warning: iteration 26u invokes undefined behavior [-Waggressive-loop-optimizations]
   long long A = chars[k];
                        ^
input/code.cpp:21:2: note: containing loop
  for (int k = 0; k <= 26; k++) {
  ^

Code

#include <iostream>

using namespace std;

long long chars[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
bool hasValidData = true;
long long output=0;

int main() {
	while (hasValidData) {
		char in = ' ';
		cin >> in;
		int i = (int)in - (int)'A';
		if (i <= 26 && i >= 0) {
			chars[i]++;
		}
		else {
			hasValidData = false;
		}
	}
	for (int k = 0; k <= 26; k++) {
		long long A = chars[k];
		if ((A / (long long)2) * (long long)2 == A) {
			output += (A + (long long)1)*(A / (long long)2);
		}
		else {
			output += A*((A / (long long)2) + (long long)1);
		}
	}
	cout << output;
	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