Pagini recente » Cod sursa (job #1438548) | Cod sursa (job #1982318) | Cod sursa (job #496661) | Istoria paginii utilizator/frongeorgecosmin | Cod sursa (job #1570448)
#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);
cout <<fixed;
cout <<setprecision(2);
cout<<maxim;}