blob: eba338284a01cee04fa81b3a9d86132f9c37821f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
int sum = 0;
char g[150][150];
int h = 0;
while (gets(g[h++]));
int w = strlen(g[--h-1]);
for (int y = 0; y < h; ++y)
for (int x = 0; x < w; ++x) {
if (g[y][x] == '.' || isdigit(g[y][x])) continue;
for (int i = -1; i <= +1; ++i)
for (int j = -1; j <= +1; ++j) {
char *p = &g[y+i][x+j];
if (!isdigit(*p)) continue;
while (p > g[y+i] && isdigit(p[-1])) p--;
sum += atoi(p);
while (isdigit(*p)) *p++ = '.';
}
}
printf("%d\n", sum);
}
|