олимпиада есептерін шығару жолдары
А есебі.
N саннан тұратын А сандар тізбегі берілген. Осы сандар тізбегін кері ретімен шығару керек.
Мəліметтерді енгізу форматы
Енгізу файлының бірінші жолында N (1 <= N <= 1 000 000) саны берілген - тізбектегі
сандардың саны. Екінші жолда кемістікпен (пробел) бөлінген N сан берілген - A тізбегінің
сандары. Əрбір санның абсолют мəні 100 000-нан аспайды.
Мəліметтерді шығару форматы
Бір жолда N санды кемістік (пробел) арқылы бөліп шығарыңыз - A тізбегін кері ретімен шығарыңыз.
Есептің шешімі:
program a;
var n,i:longint;
x:array[1..1000000] of longint;
begin
readln(n);
for i:=1 to n do readln(x[i]);
for i:=n downto 1 do write(x[i],' ');
end.
А есебінің тесті
В есебі.
Екі мысық тышқанды құбырға қуып кіргізді. Бірінші мысық координатасы x нүктесінде орналасқан, екінші мысық координатасы y нүктесінде, ал тышқан координатасы z нүктесінде орналасқан. Егер мысықтар бірдей жылдамдықпен қозғалса қайсысы тышқанға бірінші болып жететінін анықтау керек. Егер екеуі бірдей уақытта жетсе екі мысық кім бірінші жеткенін анықтап жатқанда, тышқан қашып кетеді.
Мəліметтерді енгізу форматы
Бір ғана жол берілген жəне бұл жолда x, y, z (1 <= x, y, z <= 1 000) сандары берілген.
Сандар бір біріне тең емес.
Мəліметтерді шығару форматы
Егер бірінші мысық бірінші жетсе 1 санын, екінші мысық бірінші жетсе 2 санын, екеуі
бірдей уақытта жетсе 3 санын шығарыңыз.
Есептің шешімі:
program b;
var x,y,z:0..1000;
begin
readln(x,y,z);
x:=abs(z-x);
y:=abs(z-y);
if xy then writeln(2) else writeln(3)
end.
С есебі.
Сізге a, b жəне n сандары берілген. ax саны n санына бөлгендегі қалдығы b болатын жəне
0 <= x <= n-1 болатын барлық x сандарының санын табу керек.
Мəліметтерді енгізу форматы
Бір ғана жолда үш сан берілген - a, b жəне n сандары берілген (0 <= n <= 100000, 0 <= a, b
< n).
Мəліметтерді шығару форматы
Бір ғана сан - барлық x сандарының санын табу керек.
Есептің шешімі:
program c;
label 1;
var a,b,n,x,k:0..1000000;
begin
readln(a,b,n);
if n=0 then begin writeln('на 0 делить нельзя'); goto 1 end;
for x:=0 to n-1 do
if a*x mod n = b then k:=k+1;
writeln(k);
1:end.
D есебі.
5 бүтін сандар берілген. Осы сандардың арасынан төртеуін таңдағандағы қосындының ең үлкен және ең кіші мәндерін табыңыз.
Мәліметтерді енгізу форматы
Бірінші жолда 5 бүтін сан берілген. Әр санның абсолют мәні 100-ден сапайды.
Мәліметтерді шығару форматы
Ең кіші және ең үлкен қосындының кемістік (пробел) арқылы бөліп шығарыңыз.
Есептің шешімі:
program d;
var i,min,t,max,k,s1,s2:integer;
a:array[1..5] of integer;
begin
for i:=1 to 5 do
read(a[i]);
max:=a[1]; k:=1;
min:=a[1]; t:=1;
for i:=2 to 5 do
begin
if a[i]
if a[i]>max then begin max:=a[i]; k:=i; end;
end;
for i:=1 to 5 do
begin
if i<>t then s1:=s1+a[i];
if i<>k then s2:=s2+a[i];
end;
writeln(s2,' ',s1)
end.
E есебі.
Батырхан 3-ке қалдықсыз бөлінетін сандарды жақсы көрді. Өкінішке орай, өте үлкен сандар үшін жақсы көру керек пе, әлді жоқ па тексере алмайды. Батырхан сіздің көмегіңізді сұрап жатыр, жақсы көру керектігін анықтайтын программа жазып беріңіз!
Мәліметтерді енгізу форматы
Бір ғана сан Х – тексеру керек сан (0<=X<= 10 1000).
Мәліметтерді шығару форматы
Егер х саны 3-ке қалдықсыз бөлінсе «», егер бөлінбесе «» сөзін шығарыңыз (тырнақшасыз).
Есептің шешімі:
program e;
var st:string; s,i,a,code:integer;
begin
readln(st); s:=0;
for i:=1 to length(st) do
begin
val(st[i],a,code);
s:=s+a; end;
if s mod 3=0 then writeln('YES') else writeln('NO')
end.
Достарыңызбен бөлісу: |