Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Matraguna Mihai */
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream fin("homm.in");
- ofstream fout("homm.out");
- const int NMax = 100;
- const int MMax = 100;
- const int KMax = 20;
- int N, M, K, x, y, x_f, y_f;
- int Map[NMax][MMax]; // 0.009 MB
- int DP[KMax][NMax][MMax]; // 0.19 MB, bitch!
- int di[4] = {-1, 1, 0, 0};
- int dj[4] = {0, 0, 1, -1};
- void Read()
- {
- fin >> N >> M >> K;
- for(int i = 1; i <= N; i++)
- for(int j = 1; j <= M; j++)
- fin >> Map[i][j];
- fin >> x >> y >> x_f >> y_f;
- for(int _k = 0; _k <= K; _k++)
- DP[x][y][_k] = 1; // 0 + 0 = 0
- for(int i = 1; i <= N; i++)
- for(int j = 1; j <= M; j++)
- for(int _k = 1; _k <= K; _k++)
- for(int d = 0; d < 4; d++)
- {
- if(!Map[i][j])
- DP[i][j][_k] += DP [i + di[d]] [j + dj[d]] [_k - 1];
- }
- int Result = 0;
- for(int _k = 0; _k <= K; _k++)
- Result += DP[x_f][y_f][_k];
- fout << Result << "\n";
- //cout << Result;
- }
- int main()
- {
- Read();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement