Tin học BT pascal

nhsit1062@gmail.com

Học sinh mới
Thành viên
20 Tháng sáu 2015
3
0
16
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Bài tập: HỢP TÁC
Công ty A là một công ty xây dựng lớn ở tỉnh BD, công ty B là công ty bất động sản lớn có vốn đầu tư nước ngoài, hai công ty này thường xuyên kí hợp đồng với nhau từ rất lâu và cả hai đã đạt được sự tin tưởng tuyệt đối đôi bên.
Để hưởng ứng sự kiện phát triển thành phố thông minh của tỉnh BD, công ty B muốn gia tăng sự hợp tác với công ty A bằng cách tăng mạnh giá trị dự án của 2 bên và tất nhiên cũng vì sự hợp tác lâu dài của 2 bên nên phía lãnh đạo công ty B đưa ra lời ngỏ ý gia tăng bằng phương thức gián tiếp.
Một ngày nọ giám đốc công ty B gửi một bức thư ngỏ đến công ty A trong đó có viết:
“Kính chào NAV, chúng ta cũng đã hợp tác với nhau từ rất lâu rồi, có lẽ nếu không có sự trợ giúp của giấy tờ thì tôi cũng quên mất nó. Bây giờ công ty tôi muốn công ty của anh sẽ là công ty đầu tiên lựa chọn dự án của chúng tôi và lần này sẽ bắt đầu vào lần gặp mặt tới đây”.
Giám đốc NAV là một người thông minh và ông biết đây là cơ hội mà công ty B trao cho mình. Kết hợp với kinh nghiệm sự hợp tác lâu dài 2 bên, ông còn biết rằng nếu khi ông nhận một công trình của công ty B và hoàn thành trước thời hạn thì công ty ông sẽ nhận được một số lượng cơ hội để nhận thêm những công trình khác.
Vấn đề ở đây là ông không biết phải lựa chọn thế nào để công ty ông đạt được lợi nhuận tối đa trong lần gặp mặt sắp tới. Các bạn hãy giúp ông ấy.
Yêu cầu: Bạn được cho danh sách gồm N (0 < N < 500) dự án, mỗi dự án có lợi nhuận k và số cơ hội phát triển c với các dự án khác (0 < n,k <10000). Giả sử ban đầu bạn có 1 cơ hội, xác định lợi nhuận cao nhất mà công ty có thể đạt được.
Ví dụ:

Input

Output

5
0 0
2 0
2 0
3 0
5 1

8
[TBODY] [/TBODY]
Giải thích:
Ban đầu có ta chọn dự án thứ năm có lợi nhuận là 5 và có thêm một cơ hội, tiếp đến ta chọn dự án thứ 4 có lợi nhuận 3 và còn 0 cơ hội. Tổng số lợi nhuận đạt được là 5 + 3 = 8.
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
216
18
Quảng Trị
Trường TH&THCS Hải Ba
Bài tập: HỢP TÁC
Công ty A là một công ty xây dựng lớn ở tỉnh BD, công ty B là công ty bất động sản lớn có vốn đầu tư nước ngoài, hai công ty này thường xuyên kí hợp đồng với nhau từ rất lâu và cả hai đã đạt được sự tin tưởng tuyệt đối đôi bên.
Để hưởng ứng sự kiện phát triển thành phố thông minh của tỉnh BD, công ty B muốn gia tăng sự hợp tác với công ty A bằng cách tăng mạnh giá trị dự án của 2 bên và tất nhiên cũng vì sự hợp tác lâu dài của 2 bên nên phía lãnh đạo công ty B đưa ra lời ngỏ ý gia tăng bằng phương thức gián tiếp.
Một ngày nọ giám đốc công ty B gửi một bức thư ngỏ đến công ty A trong đó có viết:
“Kính chào NAV, chúng ta cũng đã hợp tác với nhau từ rất lâu rồi, có lẽ nếu không có sự trợ giúp của giấy tờ thì tôi cũng quên mất nó. Bây giờ công ty tôi muốn công ty của anh sẽ là công ty đầu tiên lựa chọn dự án của chúng tôi và lần này sẽ bắt đầu vào lần gặp mặt tới đây”.
Giám đốc NAV là một người thông minh và ông biết đây là cơ hội mà công ty B trao cho mình. Kết hợp với kinh nghiệm sự hợp tác lâu dài 2 bên, ông còn biết rằng nếu khi ông nhận một công trình của công ty B và hoàn thành trước thời hạn thì công ty ông sẽ nhận được một số lượng cơ hội để nhận thêm những công trình khác.
Vấn đề ở đây là ông không biết phải lựa chọn thế nào để công ty ông đạt được lợi nhuận tối đa trong lần gặp mặt sắp tới. Các bạn hãy giúp ông ấy.
Yêu cầu: Bạn được cho danh sách gồm N (0 < N < 500) dự án, mỗi dự án có lợi nhuận k và số cơ hội phát triển c với các dự án khác (0 < n,k <10000). Giả sử ban đầu bạn có 1 cơ hội, xác định lợi nhuận cao nhất mà công ty có thể đạt được.
Ví dụ:
InputOutput
5
0 0
2 0
2 0
3 0
5 1
8
[TBODY] [/TBODY]
Giải thích:
Ban đầu có ta chọn dự án thứ năm có lợi nhuận là 5 và có thêm một cơ hội, tiếp đến ta chọn dự án thứ 4 có lợi nhuận 3 và còn 0 cơ hội. Tổng số lợi nhuận đạt được là 5 + 3 = 8.
Mã:
Var
   C,k:array[1..100] of integer;
   Sln,ch,tg,i,j,n:integer;
Begin
    Readln(n);
    For i:=1 to n do
      Begin
         Readln(k[i]);readln(C[i]);
      End;
    For i:=1 to n-1 do
       For j:=i+1 to n do
          If c[i]<c[j] then
             Begin  tg:=c[i];c[i]:=c[j];c[j]:=tg;
                         Tg:=k[i];k[i]:=k[j];k[j]:=tg;
             End
          Else If c[i]=c[j] then
                        If k[i]<k[j] then
                                begin tg:=c[i];c[i]:=c[j];c[j]:=tg;
                                 tg:=k[i];k[i]:=k[j];k[j]:=tg; end;
      Sln:=0;ch:=1;
      For i:=1 to n do
        Begin
          Sln:=sln+k[i]; ch:=ch+c[i]-1;
          If ch=0 then break;
        End;
     Write(sln);
 Readln
End.
 
Last edited:
Top Bottom