Chương trình đơn giản

Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Thiên Hà

Viết chương trình nhập vào một mảng N và một số nguyên m, cộng ngẫu nhiên các phần tử sao cho số lần cộng là ít nhất và tổng các phần tử lớn hơn hoặc bằng m. In ra màn hình số lần cộng (Tổng các phần tử trong mảng luôn lớn hơn hoặc bằng m)

Just a bad coder
17 tháng 1 2020 lúc 20:56

hình như bài này dùng thuật toán quy hoạch động của lớp 8

để tớ xem thử

Khách vãng lai đã xóa
Just a bad coder
17 tháng 1 2020 lúc 21:04

#include <iostream>

using namespace std;

int n,a[1001],m;

int quick2(int l, int maxx)
{
int left=l;
int right=maxx-1;
int pavot=a[maxx];
while(true)
{
while(a[left]>=pavot&&left<right)
{
left++;
}
while(a[right]<=pavot&&right>left)
right--;
if(left>=right)
break;
swap(a[left],a[right]);
left++;
right--;
}
swap(a[left],a[maxx]);
return left;
}
int quicksort(int l,int maxx)
{
if(l<maxx)
{
int p=quick2(l,maxx);
quicksort(l,p-1);
quicksort(p+1,maxx);
}
}
int main()
{

cin>>n;
cin>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
quicksort(1,n);
int dem=0,tong=0;
while(tong<m)
{
dem++;
tong+=a[dem];
}
cout<<dem;
return 0;
}

Khách vãng lai đã xóa

Các câu hỏi tương tự
Trần Vi Nam Khánh
Xem chi tiết
Lê Thị Bảo Trâm
Xem chi tiết
Nguyễn Thị Tươi
Xem chi tiết
Đức Huy
Xem chi tiết
Nguyễn Thu Trang
Xem chi tiết
Võ Bảo Bảo
Xem chi tiết
Hoàng lĩnh
Xem chi tiết
Hà Phương
Xem chi tiết
Thái Bảo
Xem chi tiết