Untitled
unknown
plain_text
a year ago
1.3 kB
5
Indexable
#include <iostream> using namespace std; long long r, k; long long m; const int MN = 102; long long cr[MN][2]; long long n; long long ch[MN][3]; long long comb[MN]; long long ans = 0; void C(long long i, long long sz) { if (sz == k) { int check_resident[MN] = {0}; for (int j = 0; j < k; ++j) { for (int ir = 0; ir < n; ++ir) { long long diff_x = cr[comb[j]][0] - ch[ir][0]; long long diff_y = cr[comb[j]][1] - ch[ir][1]; if (diff_x*diff_x + diff_y*diff_y <= r*r) { check_resident[ir] = true; } } } long long cnt = 0; for (long long ir = 0; ir < n; ++ir) { if (check_resident[ir]) { cnt += ch[ir][2]; } } ans = max(ans, cnt); return; } for (long long j = i; j < m; ++j) { comb[sz] = j; C(j + 1, sz + 1); } } int main() { freopen("Text.txt", "r", stdin); long long t; cin >> t; for (long long test_case = 1; test_case <= t; ++test_case) { cin >> k >> r; cin >> m; for (long long i = 0; i < m; ++i) { cin >> cr[i][0] >> cr[i][1]; } cin >> n; for (long long i = 0; i < n; ++i) { cin >> ch[i][0] >> ch[i][1] >> ch[i][2]; } ans = 0; C(0, 0); cout << "#" << test_case << " " << ans << '\n'; } return 0; }
Editor is loading...
Leave a Comment