Tin học Tây Sơn

Bài 3 HSG TP HCM

Go down

Bài 3 HSG TP HCM

Bài gửi by Admin on Thu Jan 03, 2019 9:00 pm

Úp code vào đây nhé
avatar
Admin
Admin
Admin

Posts : 687
Reputation : -10042
Join date : 16/11/2015
Age : 29

Xem lý lịch thành viên http://tinhocts.forumvi.com

Về Đầu Trang Go down

Re: Bài 3 HSG TP HCM

Bài gửi by tonguyengiahan237 on Sun Jan 06, 2019 11:32 am

Code:
Program Vay_va_tra;
Uses    Crt;
Type    Mang=array[1..100] of integer;
Var    N:integer;
        A:Mang;
        fi,fo:text;

Procedure Docdl;
Var i:integer;
Begin
Assign(fi,'ZDIST.INP');
Reset(fi);
Readln(fi,N);
For i:=1 to N do
Readln(fi,A[i]);
Close(fi);
End;

Procedure Xuli;
Var Tong,Buoc,Dem,i,j:integer;
Begin
Tong:=0;
Buoc:=0;
Dem:=0;
Assign(fo,'ZDIST.OUT');
Rewrite(fo);
For j:=1 to N do
Begin
        i:=j;
        If A[i]=0 then Buoc:=Buoc+1;
        If A[i]>0 then
                Begin
                begin
                Tong:=Tong+A[i];
                Buoc:=Buoc+1;
                A[i]:=0;
                end;
            If Dem<>0 then
                begin
                i:=i-Dem;
                Buoc:=Buoc+1;
                Dem:=0;
                end;
                End;
        If A[i]<0 then
                begin
                If Tong>=Abs(A[i]) then
                        begin
                        Tong:=Tong+(A[i]);
                        Buoc:=Buoc+1;
                        A[i]:=0;
                        end;
                If (Tong<Abs(A[i])) and ((Tong+A[i+1])>=Abs(A[i])) then
                        begin
                        Dem:=Dem+1;
                        Buoc:=Buoc+1;
                        end;
                If (Tong<Abs(A[i])) and ((Tong+A[i+1])<Abs(A[i])) then
                        begin
                        A[i]:=0;
                        A[i+1]:=0;
                        Buoc:=Buoc+1;
                        end;
                end;
End;
Writeln(fo,Buoc);
Close(fo);
End;

BEGIN
CLRSCR;
Docdl;
Xuli;
READLN;
END.
avatar
tonguyengiahan237
Nhiệt tình
Nhiệt tình

Posts : 42
Reputation : -1
Join date : 06/11/2018
Age : 14
Location : TT Phú Phong Huyện Tây Sơn Tỉnh Bình Định

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài 3 HSG TP HCM

Bài gửi by Admin on Sun Jan 06, 2019 4:52 pm

tonguyengiahan237 đã viết:
Code:
Program Vay_va_tra;
Uses    Crt;
Type    Mang=array[1..100] of integer;
Var     N:integer;
        A:Mang;
        fi,fo:text;

Procedure Docdl;
Var i:integer;
Begin
Assign(fi,'ZDIST.INP');
Reset(fi);
Readln(fi,N);
For i:=1 to N do
Readln(fi,A[i]);
Close(fi);
End;

Procedure Xuli;
Var Tong,Buoc,Dem,i,j:integer;
Begin
Tong:=0;
Buoc:=0;
Dem:=0;
Assign(fo,'ZDIST.OUT');
Rewrite(fo);
For j:=1 to N do
Begin
        i:=j;
        If A[i]=0 then Buoc:=Buoc+1;
        If A[i]>0 then
                Begin
                begin
                Tong:=Tong+A[i];
                Buoc:=Buoc+1;
                A[i]:=0;
                end;
             If Dem<>0 then
                begin
                i:=i-Dem;
                Buoc:=Buoc+1;
                Dem:=0;
                end;
                End;
        If A[i]<0 then
                begin
                If Tong>=Abs(A[i]) then
                        begin
                        Tong:=Tong+(A[i]);
                        Buoc:=Buoc+1;
                        A[i]:=0;
                        end;
                If (Tong<Abs(A[i])) and ((Tong+A[i+1])>=Abs(A[i])) then
                        begin
                        Dem:=Dem+1;
                        Buoc:=Buoc+1;
                        end;
                If (Tong<Abs(A[i])) and ((Tong+A[i+1])<Abs(A[i])) then
                        begin
                        A[i]:=0;
                        A[i+1]:=0;
                        Buoc:=Buoc+1;
                        end;
                end;
End;
Writeln(fo,Buoc);
Close(fo);
End;

BEGIN
CLRSCR;
Docdl;
Xuli;
READLN;
END.
Test kỹ chưa Hân? Trường hợp ko trả đc thì sao???
avatar
Admin
Admin
Admin

Posts : 687
Reputation : -10042
Join date : 16/11/2015
Age : 29

Xem lý lịch thành viên http://tinhocts.forumvi.com

Về Đầu Trang Go down

Re: Bài 3 HSG TP HCM

Bài gửi by nguyen77 on Wed Jan 09, 2019 9:02 pm

Code:
program bt;
uses crt;
var
n,i,buoc,t:integer;
fi,fo:text;
a:array[1..100]of integer;

Begin
clrscr;
assign(fi,'zdist.inp');
reset(fi);
readln(fi,n);
for i:=1 to n do
readln(fi,a[i]);
close(fi);
assign(fo,'zdist.out');
rewrite(fo);
i:=0;
buoc:=1;
t:=0;
while i<n do
        begin
        inc(i);
        if a[i]=0 then
        inc(buoc);
        if (a[i]>0) then
                begin
                inc(buoc);
                t:=t+a[i];
                a[i]:=0;
                end
        else
        if a[i]<0 then
                begin
                if abs(a[i])<t then
                        begin
                        inc(buoc);
                        t:=t+a[i];
                        a[i]:=0
                        end
                else
                if abs(a[i])>t then
                        begin
                        inc(i);
                        inc(buoc);
                        t:=t+a[i];
                        a[i]:=0;
                        if t>abs(a[i]) then
                                begin
                                t:=t+a[i];
                                buoc:=buoc+2;
                                a[i]:=0;
                                end
                        else
        if ((t+a[i+1]<abs(a[i]))) and (t<abs(a[i]))  then
                begin
                inc(buoc);
                inc(i)
                end;
        end;
        end
end;
write(fo,buoc);
close(fo);
readln;
end.



Bài này chắc tạm ổn á thầy !
avatar
nguyen77
Năng động
Năng động

Posts : 75
Reputation : -309991
Join date : 18/06/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài 3 HSG TP HCM

Bài gửi by Admin on Wed Jan 09, 2019 9:53 pm

nguyen77 đã viết:
Code:
program bt;
uses crt;
var
n,i,buoc,t:integer;
fi,fo:text;
a:array[1..100]of integer;

Begin
clrscr;
assign(fi,'zdist.inp');
reset(fi);
readln(fi,n);
for i:=1 to n do
readln(fi,a[i]);
close(fi);
assign(fo,'zdist.out');
rewrite(fo);
i:=0;
buoc:=1;
t:=0;
while i<n do
        begin
        inc(i);
        if a[i]=0 then
        inc(buoc);
        if (a[i]>0) then
                begin
                inc(buoc);
                t:=t+a[i];
                a[i]:=0;
                end
        else
        if a[i]<0 then
                begin
                if abs(a[i])<t then
                        begin
                        inc(buoc);
                        t:=t+a[i];
                        a[i]:=0
                        end
                else
                if abs(a[i])>t then
                        begin
                        inc(i);
                        inc(buoc);
                        t:=t+a[i];
                        a[i]:=0;
                        if t>abs(a[i]) then
                                begin
                                t:=t+a[i];
                                buoc:=buoc+2;
                                a[i]:=0;
                                end
                        else
        if ((t+a[i+1]<abs(a[i]))) and (t<abs(a[i]))  then
                begin
                inc(buoc);
                inc(i)
                end;
        end;
        end
end;
write(fo,buoc);
close(fo);
readln;
end.



Bài này chắc tạm ổn á thầy
Chắc chưa 54353
avatar
Admin
Admin
Admin

Posts : 687
Reputation : -10042
Join date : 16/11/2015
Age : 29

Xem lý lịch thành viên http://tinhocts.forumvi.com

Về Đầu Trang Go down

Re: Bài 3 HSG TP HCM

Bài gửi by nguyen77 on Wed Jan 09, 2019 10:05 pm

Admin đã viết:
nguyen77 đã viết:
Code:
program bt;
uses crt;
var
n,i,buoc,t:integer;
fi,fo:text;
a:array[1..100]of integer;

Begin
clrscr;
assign(fi,'zdist.inp');
reset(fi);
readln(fi,n);
for i:=1 to n do
readln(fi,a[i]);
close(fi);
assign(fo,'zdist.out');
rewrite(fo);
i:=0;
buoc:=1;
t:=0;
while i<n do
        begin
        inc(i);
        if a[i]=0 then
        inc(buoc);
        if (a[i]>0) then
                begin
                inc(buoc);
                t:=t+a[i];
                a[i]:=0;
                end
        else
        if a[i]<0 then
                begin
                if abs(a[i])<t then
                        begin
                        inc(buoc);
                        t:=t+a[i];
                        a[i]:=0
                        end
                else
                if abs(a[i])>t then
                        begin
                        inc(i);
                        inc(buoc);
                        t:=t+a[i];
                        a[i]:=0;
                        if t>abs(a[i]) then
                                begin
                                t:=t+a[i];
                                buoc:=buoc+2;
                                a[i]:=0;
                                end
                        else
        if ((t+a[i+1]<abs(a[i]))) and (t<abs(a[i]))  then
                begin
                inc(buoc);
                inc(i)
                end;
        end;
        end
end;
write(fo,buoc);
close(fo);
readln;
end.



Bài này chắc tạm ổn á thầy
Chắc chưa 54353
Chắc sơ sơ è thầy !
avatar
nguyen77
Năng động
Năng động

Posts : 75
Reputation : -309991
Join date : 18/06/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài 3 HSG TP HCM

Bài gửi by Admin on Wed Jan 09, 2019 10:40 pm

nguyen77 đã viết:
Admin đã viết:
nguyen77 đã viết:
Code:
program bt;
uses crt;
var
n,i,buoc,t:integer;
fi,fo:text;
a:array[1..100]of integer;

Begin
clrscr;
assign(fi,'zdist.inp');
reset(fi);
readln(fi,n);
for i:=1 to n do
readln(fi,a[i]);
close(fi);
assign(fo,'zdist.out');
rewrite(fo);
i:=0;
buoc:=1;
t:=0;
while i<n do
        begin
        inc(i);
        if a[i]=0 then
        inc(buoc);
        if (a[i]>0) then
                begin
                inc(buoc);
                t:=t+a[i];
                a[i]:=0;
                end
        else
        if a[i]<0 then
                begin
                if abs(a[i])<t then
                        begin
                        inc(buoc);
                        t:=t+a[i];
                        a[i]:=0
                        end
                else
                if abs(a[i])>t then
                        begin
                        inc(i);
                        inc(buoc);
                        t:=t+a[i];
                        a[i]:=0;
                        if t>abs(a[i]) then
                                begin
                                t:=t+a[i];
                                buoc:=buoc+2;
                                a[i]:=0;
                                end
                        else
        if ((t+a[i+1]<abs(a[i]))) and (t<abs(a[i]))  then
                begin
                inc(buoc);
                inc(i)
                end;
        end;
        end
end;
write(fo,buoc);
close(fo);
readln;
end.



Bài này chắc tạm ổn á thầy
Chắc chưa 54353
Chắc sơ sơ è thầy !
Độ chắc giảm dần  tongue
avatar
Admin
Admin
Admin

Posts : 687
Reputation : -10042
Join date : 16/11/2015
Age : 29

Xem lý lịch thành viên http://tinhocts.forumvi.com

Về Đầu Trang Go down

Re: Bài 3 HSG TP HCM

Bài gửi by tonguyengiahan237 on Sat Jan 12, 2019 1:42 pm

Code:
Program Vay_tra;
Uses crt;
Type Mang=array[1..100] of integer;
Var N,Buoc:integer;
    A:Mang;
    fi,fo:text;

Procedure Docdl;
Var i:integer;
Begin
Assign(fi,'ZDIST.INP');
Reset(fi);
Readln(fi,N);
For i:=1 to N do
Readln(fi,A[i]);
Close(fi);
End;

Procedure Xuli;
Var i,Tong,No,Dem:integer;
Begin
Tong:=0;Buoc:=0;No:=0;Dem:=0;
For i:=1 to N do
        begin
        If A[i]=0 then Buoc:=Buoc+1;
        If A[i]>0 then
                begin
                Tong:=Tong+A[i];
                Buoc:=Buoc+1;
                A[i]:=0;
                If (No<>0) and (Tong>=Abs(No)) then
                        begin
                        Tong:=Tong+No;
                        Buoc:=Buoc+Dem;
                        No:=0;
                        Buoc:=Buoc+Dem;
                        Dem:=0;
                        end;
                If (No<>0) and (Tong<Abs(No)) then
                        begin
                        Dem:=Dem+1;
                        end;
                end;
        If A[i]<0 then
                begin
                Buoc:=Buoc+1;
                If Abs(A[i])<=Tong then
                        begin
                        Tong:=Tong+A[i];
                        A[i]:=0;
                        end;
                If Abs(A[i])>Tong then
                        begin
                        No:=No+A[i];
                        Dem:=Dem+1;
                        end;
                end;
        end;
End;

BEGIN
CLRSCR;
Docdl;
Xuli;
Assign(fo,'ZDIST.OUT');
Rewrite(fo);
Writeln(fo,Buoc);
Close(fo);
READLN;
END.
avatar
tonguyengiahan237
Nhiệt tình
Nhiệt tình

Posts : 42
Reputation : -1
Join date : 06/11/2018
Age : 14
Location : TT Phú Phong Huyện Tây Sơn Tỉnh Bình Định

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài 3 HSG TP HCM

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết