#include #include #include #include #include using namespace std; int N, M, T; vector < pair > apples; int delta[4][2] = { {-1, 0}, {0, 1}, {1, 0}, {0, -1} }; void input() { scanf("%d %d %d", &N, &M, &T); int x, y; scanf("%d %d", &x, &y); apples.push_back(make_pair(x-1, y-1)); if( scanf("%d %d", &x, &y) == 2 ) apples.push_back(make_pair(x-1, y-1)); } bool used[1000][1000]; void bfs() { queue < pair > q; int x, y; for( int i = 0; i < apples.size(); i++ ) { x = apples[i].first; y = apples[i].second; q.push(make_pair(x, y)); used[x][y] = 1; } int br1 = q.size(), levels = 0; int rotten_apples = q.size(); while( !q.empty() ) { int x = q.front().first; int y = q.front().second; q.pop(); br1--; for( int i = 0; i < 4; i++ ) { int new_x = x + delta[i][0]; int new_y = y + delta[i][1]; if( 0 <= new_x && new_x < N && 0 <= new_y && new_y < M && !used[new_x][new_y] ) { used[new_x][new_y] = 1; q.push(make_pair(new_x, new_y)); } } if( br1 == 0 ) { br1 = q.size(); rotten_apples += q.size(); levels++; } if( levels == T ) { printf("%d\n", N*M - rotten_apples); break; } } } int main() { input(); bfs(); return 0; }