#include #include #include using namespace std; char s[105],type[100]; char a[100][100], aux[100]; int memorie[100], m, ak; int k; long long sum; bool cifre(char s[100]) { int len = strlen(s); for(int i = 0; i < len; i++) if(s[i] >= '0' && s[i] <= '9') return true; return false; } long long prelucrare(char s[100]) { m = 0; memset(aux, 0, sizeof(aux)); ak = 0; if(cifre(s) == 0) return 1; else { int len = strlen(s); for(int i = 0; i < len; i++) { if(s[i] == ']') { sscanf(aux, "%d", &memorie[m++]); memset(aux, 0, sizeof(aux)); ak = 0; } else if(isdigit(s[i]) && s[i-1] == '['){ while(isdigit(s[i])) aux[ak++] = s[i++]; aux[ak] = 0; i--; } } long long temp = 1; for(int i = 0; i < m; i++) temp *= memorie[i]; return temp; } } long long number(char s[]) { long long suma = 0; char *t = strtok(s, ","); while(t) { strcpy(a[k++], t); t = strtok(NULL, ","); } for(int i = 0; i < k; i++) suma += prelucrare(a[i]); return suma; } bool eok(char s[]) { if(!isalpha(s[0])) return 0; return 1; } int main() { //freopen("date.in", "r", stdin); while(cin>>type) { if(eok(type) == 0) break; memset(s, 0, sizeof(s)); memset(a, 0, sizeof(a)); k = 0; sum = 0; if(strcmp(type, "unsigned") == 0) { memset(s, 0, sizeof(s)); scanf("%s ", type); } fgets(s, 100, stdin); if(strcmp(type, "int") == 0) sum += 4*number(s); else if(strcmp(type, "char") == 0) sum += number(s); else if(strcmp(type, "short") == 0) sum += 2*number(s); printf("%lld\n", sum); memset(type, 0, sizeof(type)); } return 0; }