Hi,
I tried to solve the 10267 but I got wrong, I tested with all cases that have in board and OK.
The read of input that be special?
This is my code

[cpp]#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 300
int m, n;
char matriz[MAX][MAX];
int max(int a, int b) {
if (a > b) return a;
return b;
}
int min(int a, int b) {
if (a < b) return a;
return b;
}
void fImprimir() {
int i, j;
for (i = 1; i <= n; i++) {
for (j = 1; j <= m; j++) {
printf("%c", matriz[i][j]);
}
printf("\n");
}
}
void fC() {
int i, j;
for (i = 1; i < MAX; i++)
for (j = 1; j <= MAX; j++)
matriz[i][j] = 'O';
}
void fL(int x, int y, char c) {
matriz[y][x] = c;
}
void fV(int x, int y1, int y2, char c) {
int i, min_y, max_y;
min_y = min(y1, y2);
max_y = max(y1, y2);
for (i = min_y; i <= max_y && i <= n; i++)
matriz[i][x] = c;
}
void fH(int x1, int x2, int y, char c) {
int i, min_x, max_x;
min_x = min(x1, x2);
max_x = max(x1, x2);
for (i = min_x; i <= max_x && i <= m; i++)
matriz[y][i] = c;
}
void fK(int x1, int y1, int x2, int y2, char c) {
int i, j;
for (i = y1; i <= y2 && i <= n; i++) {
for (j = x1; j <= x2 && j <= m; j++) {
matriz[i][j] = c;
}
}
}
void fF(int x, int y, char c, char f) {
if (x < 1 || x >= m+1) return;
if (y < 1 || y >= n+1) return;
if (matriz[y][x] != f || matriz[y][x] == c) {
return;
}
matriz[y][x] = c;
fF(x, y+1, c, f);
fF(x, y-1, c, f);
fF(x+1, y, c, f);
fF(x-1, y, c, f);
/*fF(x+1, y+1, c, f);
fF(x+1, y-1, c, f);
fF(x-1, y+1, c, f);
fF(x-1, y-1, c, f);*/
}
int main() {
#ifndef ONLINE_JUDGE
freopen("10267.in", "r", stdin);
freopen("10267.out", "w", stdout);
#endif
char ca, c;
char line[256], filename[20];
int x1, x2, y1, y2, x, y;
while (true) {
//gets(line);
scanf(" %c ", &ca);
//printf("%c\n", ca);
if (ca == 'I') {
scanf(" %d %d", &m, &n);
//printf("I: %d %d\n", m, n);
fC();
}
else if (ca == 'C') {
fC();
}
else if (ca == 'L') {
scanf(" %d %d %c", &x, &y, &c);
//printf("%d %d %c", x, y, c);
fL(x, y, c);
//fImprimir();
}
else if (ca == 'V') {
scanf(" %d %d %d %c", &x, &y1, &y2, &c);
//printf("%d %d %d %c", x, y1, y2, c);
fV(x, y1, y2, c);
}
else if (ca == 'H') {
scanf(" %d %d %d %c", &x1, &x2, &y, &c);
//printf("%d %d %d %c", x1, x2, y, c);
fH(x1, x2, y, c);
}
else if (ca == 'K') {
scanf(" %d %d %d %d %c", &x1, &y1, &x2, &y2, &c);
//printf("%d %d %d %d %c", x1, y1, x2, y2, c);
fK(x1, y1, x2, y2, c);
}
else if (ca == 'F') {
scanf(" %d %d %c", &x, &y, &c);
//printf("%d %d %c", x, y, c);
if (matriz[x][y] != c) {
fF(x, y, c, matriz[x][y]);
}
}
else if (ca == 'S') {
//scanf("%s", &filename);
gets(filename);
printf("%s\n", filename);
fImprimir();
}
else if (ca == 'X') {
return 0;
}
else {
gets(line);
/* comando desconhecido */
}
}
return 0;
}
[/cpp]
Thanks for all
Wanderley