Cod sursa(job #1570449)

Utilizator rares98_priPopa Rares rares98_pri Data 16 ianuarie 2016 15:49:39
Problema Secventa 3 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#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;}