Problem p00026 (C++) — buggy submission, verdict: Time Limit Exceeded

#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <stack>
#include <string>
#include <vector>

#define DEBUG 0

using namespace std;

struct INKI {
  int x;
  int y;
  int size;
};

int main() {
  int map[10][10];

  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      map[i][j] = 0;
    }
  }

  INKI tmp;
  while (scanf("%d,%d,%d", &tmp.x, &tmp.y, &tmp.size) > 0) {
    if (tmp.size == 3) {
      for (int i = -2; i <= 2; i++) {
        if (tmp.y + i >= 0 && tmp.y + i < 10) {
          map[tmp.y + i][tmp.x]++;
        }
        if (tmp.x + i >= 0 && tmp.x + i < 10) {
          map[tmp.y][tmp.x + i]++;
        }
      }
      map[tmp.y][tmp.x]--;
      for (int i = -1; i <= 1; i += 2) {
        if (tmp.y + i >= 0 && tmp.y + i < 10) {
          for (int j = -1; j <= 1; j += 2) {
            if (tmp.x + j >= 0 && tmp.x + j < 10) {
              map[tmp.y + i][tmp.x + j]++;
            }
          }
        }
      }
    } else if (tmp.size == 2) {
      for (int i = tmp.y - 1; i <= tmp.y + 1; i++) {
        if (i >= 0 && i < 10) {
          for (int j = tmp.x - 1; j <= tmp.x + 1; j++) {
            if (j >= 0 && j < 10) {
              map[i][j]++;
            }
          }
        }
      }
    } else if (tmp.size == 1) {
      for (int i = -1; i <= 1; i++) {
        if (tmp.y + i >= 0 && tmp.y + i < 10) {
          map[tmp.y + i][tmp.x]++;
        }
        if (tmp.x + i >= 0 && tmp.x + i < 10) {
          map[tmp.y][tmp.x + i]++;
        }
      }
      map[tmp.y][tmp.x]--;
    }

#if DEBUG
    for (int i = 0; i < 10; i++) {
      for (int j = 0; j < 10; j++) {
        if (j) {
          cout << " ";
        }
        cout << map[i][j];
      }
      cout << endl;
    }
#endif
  }

  int noColor = 0;
  int koi = 0;

  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      if (map[i][j] == 0) {
        noColor++;
      }
      if (koi < map[i][j]) {
        koi = map[i][j];
      }
    }
  }

  cout << noColor << endl;
  cout << koi << endl;

  return 0;
}

Error: TLE

Fixed submission:

#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <stack>
#include <string>
#include <vector>

#define DEBUG 0

using namespace std;

struct INKI {
  int x;
  int y;
  int size;
};

int main() {
  int map[10][10];

  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      map[i][j] = 0;
    }
  }

  INKI tmp;
  while (scanf("%d,%d,%d", &tmp.x, &tmp.y, &tmp.size)) {
    if (tmp.size == 3) {
      for (int i = -2; i <= 2; i++) {
        if (tmp.y + i >= 0 && tmp.y + i < 10) {
          map[tmp.y + i][tmp.x]++;
        }
        if (tmp.x + i >= 0 && tmp.x + i < 10) {
          map[tmp.y][tmp.x + i]++;
        }
      }
      map[tmp.y][tmp.x]--;
      for (int i = -1; i <= 1; i += 2) {
        if (tmp.y + i >= 0 && tmp.y + i < 10) {
          for (int j = -1; j <= 1; j += 2) {
            if (tmp.x + j >= 0 && tmp.x + j < 10) {
              map[tmp.y + i][tmp.x + j]++;
            }
          }
        }
      }
    } else if (tmp.size == 2) {
      for (int i = tmp.y - 1; i <= tmp.y + 1; i++) {
        if (i >= 0 && i < 10) {
          for (int j = tmp.x - 1; j <= tmp.x + 1; j++) {
            if (j >= 0 && j < 10) {
              map[i][j]++;
            }
          }
        }
      }
    } else if (tmp.size == 1) {
      for (int i = -1; i <= 1; i++) {
        if (tmp.y + i >= 0 && tmp.y + i < 10) {
          map[tmp.y + i][tmp.x]++;
        }
        if (tmp.x + i >= 0 && tmp.x + i < 10) {
          map[tmp.y][tmp.x + i]++;
        }
      }
      map[tmp.y][tmp.x]--;
    }
  }

  int noColor = 0;
  int koi = 0;

  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      if (map[i][j] == 0) {
        noColor++;
      }
      if (koi < map[i][j]) {
        koi = map[i][j];
      }
    }
  }

  cout << noColor << endl;
  cout << koi << endl;

  return 0;
}