Pagini recente » Cod sursa (job #771868) | Cod sursa (job #2238479) | Cod sursa (job #856947) | Cod sursa (job #2511314) | Cod sursa (job #1570449)
#include <iostream>
#include <fstream>
#include<iomanip>
using namespace std;
ifstream in ("secv3.in");
ofstream out ("secv3.out");
int n,l,u,st[30000];
float x,a[30000][2],maxim;
bool valid(int k){
for(int i=1;i<k;i++)
if(st[i]==st[k])return 0;
return 1;}
bool solutie(int k){
if(k<l||k>u)return 0;
return 1;}
void tipar(int k){
float s=0;
for(int i=1;i<=k;i++){
s+=a[st[i]][1]/a[st[i]][2];}
maxim=max(maxim,s);}
void backtracking(int k){
for(int i=1;i<=n;i++){
st[k]=i;
if(valid(k))if(solutie(k))tipar(k);
else backtracking(k+1);}}
int main(){
in>>n>>l>>u;
int i,j;
for(i=1;i<=n;i++)in>>a[i][1];
for(i=1;i<=n;i++)in>>a[i][2];
backtracking(1);
out <<fixed;
out <<setprecision(2);
out<<maxim;}