Tin học Pascal

kidaoko1412minion

Học sinh mới
Thành viên
29 Tháng một 2019
3
1
6
19
Phú Yên
THCS Hoàng Văn Thụ
[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.

Trong phiên bản mở rộng của Dragon Ball Super, Songoku đang thu thập ngọc để triệu hồi Rồng Thần trong truyền thuyết. Trong N ngày, mỗi ngày Songoku thu thập được 1 viên ngọc cấp i bất kỳ .Cứ 2 viên cấp i tạo được 1 viên cấp i+1 ( 2 viên ngọc cùng cấp sẽ tạo được một viên ngọc cao hơn 1 cấp).
* Yêu cầu: Tìm cấp cao nhất của viên ngọc mà Songoku có thể tạo được sau N ngày.
+ Dữ liệu vào: từ tệp văn bản SONGOKU.INP
- Dòng đầu là số nguyên N (0<N≤105 ) là số ngày Songoku thu thập ngọc rồng.
- Dòng thứ 2 gồm N số nguyên dương ai liên tiếp, mỗi số cách nhau một ký tự trắng. (1≤ai≤105) là cấp của viên ngọc Songoku thu thập được mỗi ngày.
+ Dữ liệu ra: ghi vào tệp văn bản SONGOKU.INP cấp cao nhất của viên ngọc mà Songoku có thể tạo được sau N ngày.



tiện thể check giùm em bài em đã làm
program SONGOKU;
var A,B:array[1..100005] of longint;
n,i,j,m:longint;
begin
ASSIGN(INPUT, 'SONGOKU.INP');RESET(INPUT);
ASSIGN(OUTPUT,'SONGOKU.OUT');REWRITE(OUTPUT);
readln(n);
for i:=1 to n do
read(A);
for i:=1 to n do
if A>0 then
for j:=1 to n do
if (A=A[j])and(i<>j) then begin A[j]:=0;inc(A);end;
m:=A[1];
for i:=1 to n do
if A>m then m:=A;
writeln(m);
end.


giới hạn N và A là 10^5, mọi người giúp em với
 

nguyen tran thanh nha

Học sinh chăm học
Thành viên
10 Tháng sáu 2018
107
53
61
20
Bà Rịa - Vũng Tàu
thcs kim long
var n,i:longint;
a:array[0..100000] of longint;
f,g:text;
procedure sort(l,r: longint);
var
i,j,x,y: longint;
begin
i:=l;
j:=r;
x:=a[(l+r) div 2];
repeat
while a<x do
inc(i);
while x<a[j] do
dec(j);
if not(i>j) then
begin
y:=a;
a:=a[j];
a[j]:=y;
inc(i);
j:=j-1;
end;
until i>j;
if l<j then
sort(l,j);
if i<r then
sort(i,r);
end;


begin
assign(f,'songoku.inp'); reset(f);
assign(g,'songoku.out');rewrite(g);
readln(f,n);
for i:=1 to n do read(f,a);
sort(1,n);
for i:=1 to n do if a=a[i-1] then a:=a+1;
write(g,a[n]);
close(f);
close(g);
end.
 
  • Like
Reactions: kidaoko1412minion

kidaoko1412minion

Học sinh mới
Thành viên
29 Tháng một 2019
3
1
6
19
Phú Yên
THCS Hoàng Văn Thụ
var n,i:longint;
a:array[0..100000] of longint;
f,g:text;
procedure sort(l,r: longint);
var
i,j,x,y: longint;
begin
i:=l;
j:=r;
x:=a[(l+r) div 2];
repeat
while a<x do
inc(i);
while x<a[j] do
dec(j);
if not(i>j) then
begin
y:=a;
a:=a[j];
a[j]:=y;
inc(i);
j:=j-1;
end;
until i>j;
if l<j then
sort(l,j);
if i<r then
sort(i,r);
end;


begin
assign(f,'songoku.inp'); reset(f);
assign(g,'songoku.out');rewrite(g);
readln(f,n);
for i:=1 to n do read(f,a);
sort(1,n);
for i:=1 to n do if a=a[i-1] then a:=a+1;
write(g,a[n]);
close(f);
close(g);
end.
mình chạy bị lỗi, mà thủ tục close là j z bạn, giúp mk vs, cảm ơn bạn rất nhìu
 

nguyen tran thanh nha

Học sinh chăm học
Thành viên
10 Tháng sáu 2018
107
53
61
20
Bà Rịa - Vũng Tàu
thcs kim long
mình chạy bị lỗi, mà thủ tục close là j z bạn, giúp mk vs, cảm ơn bạn rất nhìu
mấy cái a là ai thêm ngoặc vuông nha bạn. còn lệnh close này thì lúc mình mở file xong thì mình dùng lệnh này để đóng file lại thôi. nếu không có lệnh này thì không hiện kết quả

mình mới làm lại vì thấy cái trước nó thiếu trường hợp mà mình quên xóa cái thủ tục rồi. cái thủ tục đó mình tưởng cần nhưng không cần nên để đó cho có
 

Attachments

  • pascal.rar
    530 bytes · Đọc: 51
Last edited by a moderator:
Top Bottom