func_code_string: #include <bits/stdc++.h>   using std::cin;   using std::cout;   using std::endl;   using std::ifstream;   using std::max;   using std::min;   using std::ofstream;   using std::string;   int dp[2204][2204];   int vec[21][2];   int x, y, vec_num_n, max_dist_d;   int dfs(int ori_x, int ori_y, int off_x, int off_y) {     if (dp[off_x][off_y] >= 0) {       return dp[off_x][off_y];     }     int cur_x = ori_x + off_x;     int cur_y = ori_y + off_y;     if (cur_x * cur_x + cur_y * cur_y > max_dist_d * max_dist_d) {       return dp[off_x][off_y] = 0;     }     for (int vec_i = 0; vec_i < vec_num_n; ++vec_i) {       int next_x = vec[vec_i][0] + off_x;       int next_y = vec[vec_i][1] + off_y;       if (dfs(ori_x, ori_y, next_x, next_y)) {         return dp[off_x][off_y] = 0;       }     }     return dp[off_x][off_y] = 1;   }   int main() {     cin >> x >> y >> vec_num_n >> max_dist_d;     for (int vec_i = 0; vec_i < vec_num_n; ++vec_i) {       cin >> vec[vec_i][0] >> vec[vec_i][1];     }     memset(dp, -1, sizeof(dp));     if (!dfs(x, y, 0, 0)) {       cout <<  Anton  << endl;     } else {       cout <<  Dasha  << endl;     }     return 0;   }   