39 lines
637 B
C
39 lines
637 B
C
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <string.h>
|
||
|
|
||
|
int get_prio (char c) {
|
||
|
int r = (int) (c - 'a'+1);
|
||
|
if (r > 0) return r;
|
||
|
return r + 'A' - 7;
|
||
|
}
|
||
|
|
||
|
int main () {
|
||
|
char cur[50];
|
||
|
int half = 0;
|
||
|
u_int64_t masks[3] = {0};
|
||
|
int sum = 0;
|
||
|
int j =0;
|
||
|
while (fgets(cur,50,stdin) != NULL) {
|
||
|
int i;
|
||
|
for (i=0; i<strlen(cur)-1; i++) {
|
||
|
masks[j] |= (1LL << get_prio(cur[i]));
|
||
|
}
|
||
|
if (j == 2) {
|
||
|
u_int64_t mask = 0;
|
||
|
mask = masks[0] & masks[1] & masks[2];
|
||
|
for (int k=0; k<3; k++) masks[k] = 0;
|
||
|
int k =-1;
|
||
|
while (mask > 0) {
|
||
|
k++;
|
||
|
mask >>=1LL;
|
||
|
}
|
||
|
sum += k;
|
||
|
j = -1;
|
||
|
}
|
||
|
j++;
|
||
|
}
|
||
|
printf("%d\n", sum);
|
||
|
|
||
|
}
|