Kết quả 11 đến 13 của 13
-
07-17-2016, 05:09 PM #11Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Gửi bởi tengiday
Mã:const fi='d:\pascal\qhd\bottles\input.txt';var i,n:longint; f,a:array[0..100] of longint; procedure input; var f:text; begin assign(f,fi); reset(f); readln(f,n); for i:=1 to n do read(f,a[i]); close(f); end; function max(a,b:longint):longint; begin if a>b then exit(a) else exit(b); end; procedure qhd; begin f[1]:=a[1]; f[2]:=a[1]+a[2]; f[3]:=max(max(a[1]+a[2],a[2]+a[3]),a[1]+a[3]); for i:=4 to n do f[i]:=max(f[i-2]+a[i],f[i-3]+a[i-1]+a[i]); end; procedure rslt; var t:longint; begin t := n; while (t > 3) do begin if (f[t] = f[t - 1]) then begin t := t - 1; end else if (f[t] = f[t - 3] + a[t - 1] + a[t]) then begin write(a[t], ' ', a[t - 1], ' '); t := t - 3; end else if (f[t] = f[t - 2] + a[t]) then begin write(a[t], ' '); t := t - 2; end; end; end; begin input; qhd; rslt; readln; end.
-
07-17-2016, 05:47 PM #12Silver member
- Ngày tham gia
- May 2016
- Bài viết
- 0
Đoạn codes này của bạn cần thêm vào tí xíu nữa mới hoàn thành được.
1) Trong procedure qhd, cần phải lấy thêm max của F[i - 1] luôn. Lý do là theo cách mình đặt hàm F, thì F[i] là dung tích max khi uống tới chai thứ i, nhưng ko biết đc là có uống chai thứ i hay không uống chai thứ i. Để thấy điều này, bạn lấy test ở post #6 của mình là thấy:
Output đúng là 15 4 2 3 (F[6] = 24).
Nếu ko lấy max của F[i - 1] thì output sẽ ra là 2 15 2 3 (F[6] = 22).
2) Sau khi ra khỏi dòng while loop rồi, bạn cần xử lý trường hợp t = 1, 2, 3. Cách làm cũng tương tự như trong vòng loop; bạn có thể nhìn vào cách khởi tạo của mảng F để xem thử giá trị của nó đến từ phần tử nào nhé.
Good luck.
-
07-20-2016, 03:00 PM #13Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Gửi bởi tengiday
Điều quan yếu trong quan hệ, nam giới cần cho dương vật đi vào bao cao su nữ. một đôi người nhận thấy cảm giác ở cậu bé có vẻ hoạt động tốt nếu thâm nhập sâu giữa bên ngoài bao cao su và thành âm...
Khuyến cáo cho quý bà trước khi sử...