ĐÁP ÁN VÒNG 2 CUỘC THI TIN HỌC LẦN 3:
Câu 1(2 điểm)
uses crt;
var a:array[1..100000]of int64;
i,n,x,dem:int64;
begin
clrscr;
readln(n,x);
for i:=1 to n do
read(a[i]);
dem:=0;
for i:=1 to n do
if x=a[i] then inc(dem);
writeln(dem);
readln;
end.
Câu 2(2 điểm)
uses crt;
var n,k,i,dem:int64;
a:array[1..1000000]of int64;
{-----------------chuong-trinh-con-quick-sort------------------------}
procedure qs(d,c:int64);
var i,j,x,tam:int64;
begin
i:=d;
j:=c;
x:=a[(i+j) div 2];
repeat
while a[i]<x do
inc(i);
while a[j]>x do
dec(j);
if i<=j then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
inc(i);
dec(j);
end;
until i>j;
if d<j then qs(d,j);
if i<c then qs(i,c);
end;
{---------------chuong-trinh-chinh------------------}
begin
clrscr;
readln(n);
for i:=1 to n do
read(a[i]);
qs(1,n);
k:=a[n];
dem:=0;
for i:=1 to n do
if k=a[i] then inc(dem);
writeln(dem);
readln;
end.
Câu 3(2 điểm) Bài làm của bạn Hưng Nguyễn Thái
var a,b,c:int64;
begin
read(a,b,c);
if (a+b <= c) and ((c-a-b) mod 2 = 0) then write('Yes')
else write('No');
end.
Câu 4(6 điểm) Bài làm của bạn Quý Lương
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
ios_base::sync_with_stdio(false); cout.tie(NULL);
ll n, k;
cin>>n>>k;
ll d=__gcd(n, k);
n/=d; k/=d;
cout << n/k << '.';
n=n%k*10;
ll s=0, t=k;
for (s; t%2==0 or t%5==0; s++) {
if (t%2==0) t/=2;
if (t%5==0) t/=5;
}
for (s; s>0; s--) {
cout << n/k;
n=(n%k) * 10;
}
if (t==1) cout << "(0)";
else {
ll r =10%t;
for (s=1; r!=1; s++) r=r*10 % t;
cout << '(';
for (s; s>0; s--) {
cout << n/k;
n=(n%k)*10;
}
cout << ')';
}
}
Câu 5(8 điểm) Bài làm của bạn Trần Nguyễn Đăng Dương
#include <bits/stdc++.h>
using namespace std;
int n;
long long a[100001];
long long f[100001];
void ans(long long x)
{
int dem=1;
for (long long i=2;i*i<=x;i++)
if (x%i==0)
{
f[dem]=i;
if (i!=sqrt(x))
{
f[dem+1]=x/i; dem+=2;
}
else dem++;
}
f[dem]=x;
sort(f+1,f+dem);
for (int i=1;i<=dem;i++) cout<<f[i]<<endl;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
cin>>n;
for (int i=1;i<=n;i++) cin>>a[i];
long long gcd=abs(a[2]-a[1]);
for (int i=3;i<=n;i++)
gcd=__gcd(gcd,abs(a[i]-a[i-1]));
ans(gcd);
}