Untitled
unknown
plain_text
a year ago
1.1 kB
6
Indexable
#include <iostream> using namespace std; int gates[3]; int fisherman[3]; int visited[20]; int n, answer=999999999; void permut(int visited[], int l, int r){ if (l==r){ /* for (int i=0; i<n; i++){ cout << visited[i] << " "; } cout << endl; */ int i,j,k,dist=0; for (i=0; i<fisherman[0]; i++){ dist = dist + abs(visited[i]-gates[0]); } for (j=0; j<fisherman[1]; j++){ dist = dist + abs(visited[i]-gates[1]); i+=1; } for (k=0; k<fisherman[2]; k++){ dist = dist + abs(visited[i]-gates[2]); i+=1; } dist = dist + i; //cout << i+1 << endl; answer = min(answer,dist); return; } else{ for (int i=l; i<=r; i++){ swap(visited[i], visited[l]); permut(visited, l+1, r); swap(visited[i], visited[l]); } } } int main(){ cin >> n; for (int i=0; i<3; i++) cin >> gates[i]; for (int i=0; i<3; i++) cin >> fisherman[i]; for (int i=0; i<n; i++) visited[i] = i+1; permut(visited, 0, n-1); cout << answer << endl; return 0; }
Editor is loading...
Leave a Comment