Orar semigroup #2

Orar semigroup #2

11/2

1. Un instructor de schi are la dispozitie n perechi de schiuri pe care trebuie sa le distribuie la n elevi incepatori. Scrieti un program care sa distribuie cele n perechi astfel incat suma diferentelor absolute dintre inaltimea elevului si lungimea schiurilor atribuite sa fie minima.

#include<iostream>
#include<fstream>
using namespace std;
int main()
{int n,i,j,p,k=1,a[100],b[100];
cout<<"n="; cin>>n;
for(i=0;i>a[i]>>b[i];
sort(a,n+a);
sort(b,n+b);
for(i=0;i
<n;i++)
cout<<a[i]<<"-"<<b[i]<<"="<<abs(a[i]-b[i])<<endl;
}
2. Avand un tablou de n nr. nat. se cere sa se aleaga din acestea cat mai multe, dar cel mult k numere prime astfel incat suma acestora sa nu depaseasca suma celor neprime.
ex: n=7, k=3 si nr: 2, 7, 4, 9, 8, 20, 11
#include<iostream>
#include<fstream>
using namespace std;
int prim(int n)
{int i,d,ok=1;
for(d=2;d<=n/2;d++)
if(n%d==0)
ok=0;
return ok;
}

int main()
{int n,m,i,j,aux,s=0,p,sp,a[100],k;
cout<<"n=";cin>>n;
cout<<"k=";cin>>k;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
if(prim(a[i])==0)
s=s+a[i];
sort(a,n+a);
i=0;p=0;sp=0;
while(p<k && sp<=s)
{if(prim(a[i]))
{sp=sp+a[i];
if(sp<=s)
{cout<<a[i]<<" ";
p++;}}
i++;
}
}

miercuri, 2 noiembrie 2011 by DlMuresan
Categories: | Leave a comment

Leave a Reply