15 while ((nread
= getline(&line
, &len
, stdin
)) >= 0) {
16 line
[nread
- 1] = '\0';
24 if (freq
[*p
- 'a'] > count
)
25 count
= freq
[*p
- 'a'];
26 } else if (isdigit (*p
))
27 id
= id
* 10 + *p
- '0';
31 for (int i
= 0; *p
!= ']'; i
++) {
37 if (*p
++ != i
+ 'a') {
40 printf ("room %s is bogus\n", line
);
46 printf ("room %s is valid\n", line
);
48 while (!isdigit (*p
)) {
52 *p
= 'a' + (*p
- 'a' + id
) % 26;
56 printf ("valid rooms include %d: %s\n", id
, line
);
60 printf ("sum of ids is %d\n", sum
);