I am new in writing recursive algorithm so I tried this problem from SPOJ but I could not formulate the recursive relation from where I can find the optimal solution. Can anyone help me to see the optimal solution of the problem below please.
There are N pilots working for his company (N is even) and N/2 plane crews needs to be made. A plane crew consists of two pilots - a captain and his assistant. A captain must be older than his assistant. Each pilot has a contract granting him two possible salaries - one as a captain and the other as an assistant. A captain's salary is larger than assistant's for the same pilot. However, it is possible that an assistant has larger salary than his captain. Write a program that will compute the minimal amount of money Charlie needs to give for the pilots' salaries if he decides to spend some time to make the optimal (i.e. the cheapest) arrangement of pilots in crews.
The first line of input contains integer N, 2 ≤ N ≤ 10,000, N is even, the number of pilots working for the Charlie's company. The next N lines of input contain pilots' salaries. The lines are sorted by pilot's age, the salaries of the youngest pilot are given the first. Each of those N lines contains two integers separated by a space character, X i Y, 1 ≤ Y < X ≤ 100,000, a salary as a captain (X) and a salary as an assistant (Y).
The first and only line of output should contain the minimal amount of money Charlie needs to give for the pilots' salaries.
Person:1 Captain Salary =5 Assistant Salary=3
Person:2 Captain Salary =6 Assistant Salary=2
Person:3 Captain Salary =8 Assistant Salary=1
Person:4 Captain Salary =9 Assistant Salary=6
Here Ans would be 19.
we have to say Min how much money we have to pay to select 2 crews where all the N pilots are part of as Pilot or Assistant.
Can someone help me to solve in Polynomial Time please