Untitled
unknown
plain_text
6 months ago
1.5 kB
1
Indexable
Never
#include<iostream> using namespace std; int k, r,m,n; int loc[20][2]; int khu[100][3]; bool in[20][100]; int visit[20]; int ans; int A[20]; void reset(){ for(int u =0; u < n; u++){ visit[u] =0; } } void Try(int i, int start){ for(int j =start; j <= m-1; j++){ A[i] = j; if(i==k-1){ int tong =0; for(int h=0; h<k;h++){ for(int u =0; u < n; u++){ if(visit[u] == 0 && in[A[h]][u] == true){ tong += khu[u][2]; visit[u] =1; } } } if(ans< tong) ans = tong ; reset(); } else { Try(i+1, j+1); } } } int binh(int x){ int result; result = x*x; return result; } int main(){ freopen("Text.txt", "r", stdin); int test; cin >> test; for(int tc=1; tc <= test; tc++){ cin >> k >>r >> m; // m la so location tiem nang, k la so cua hang for(int i=0; i<m;i++){ cin >> loc[i][0] >> loc[i][1]; } cin >> n; // n la so khu dan cu for(int i=0; i<n;i++){ cin >> khu[i][0] >> khu[i][1] >> khu[i][2]; // luu toa do cac khu dan cu va so dan trong do } // xem xem khu dan cu nao nam trong vung cua loc nao for(int i=0; i< m; i++){ for(int j =0; j < n; j++){ if((binh(khu[j][0]-loc[i][0]) + binh(khu[j][1]-loc[i][1])) <= binh(r)){ in[i][j] = true; } else in[i][j] =false; } } ans=0; Try(0,0); cout << "#" << tc << " " << ans << endl; } return 0; }