# data[].attributes.body
uses crt;

var i:longint; n,d:int64;

Begin

clrscr;

readln(n);

for i:=2 to trunc(sqrt(n div 2)) do

begin

if n mod i=0 then

begin

inc(d);

while n mod i=0 do

begin

n:=n div i;

end

end;

end;

write(d);

readln

end.

# data[].attributes.body
uses crt;

var i,j,z,n,d,max,r,k:longint;

a,b,s:array[1..999999] of longint;

t,f:text;

begin

assign(t,'chonsach.inp');reset(t);

assign(f,'chonsach.out');rewrite(f);

readln(t,n);

for i:=1 to n do readln(t,a[i],b[i]);

for i:=1 to n-1 do

for j:=i+1 to n do

if a[i]>a[j] then

begin

z:=a[i];

a[i]:=a[j];

a[j]:=z;

z:=b[i];

b[i]:=b[j];

b[j]:=z;

end;

for i:=1 to n-1 do

begin

d:=1;

r:=a[i];

k:=b[i];

for j:=i+1 to n do

if (r<a[j]) and (k<b[j]) then

begin

inc(d);

r:=a[j];

k:=b[j];

end;

if d>max then max:=d;

end;

if max=0 then write(f,1) else write(f,max);

close(t);close(f);

end.

# data[].attributes.body
uses math;

type SACH = record

dai, rong : longint;

end;

function xeptruoc(x, y : SACH) : boolean;

begin

if x.dai < y.dai then exit(true);

exit((x.dai=y.dai) and (x.rong<y.rong));

end;

var a : array[1..200000] of SACH;

n, i, j, fmax : longint;

tmp : SACH;

f : array[1..200000] of longint;

input, output:text;

begin

assign(input,'chonsach.inp'); reset(input);

assign(output,'chonsach.out'); rewrite(output);

readln(input,n);

for i:= 1 to n do readln(input, a[i].dai, a[i].rong);

for i:=1 to n-1 do

for j:=i+1 to n do

if xeptruoc(a[j], a[i]) then begin

tmp:=a[i];

a[i]:=a[j];

a[j]:= tmp;

end;

fmax:=0;

for i:= 1 to n do begin

f[i]:=1;

for j:= 1 to i-1 do

if (a[j].dai<a[i].dai) and (a[j].rong<a[i].rong) then

f[i] := max(f[i], f[j]+1);

fmax := max(fmax, f[i]);

end;

write(output,fmax);

close(input);close(output);

end.

# data[].attributes.attachment_link.provider_name
123doc Cộng đồng chia sẻ, upload, upload sách, upload tài liệu

# data[].attributes.attachment_link.readable_text
Đề thi chính thức môn Tin học Kỳ thi HSG tỉnh Thanh Hóa năm 2017 - 2018. Chương trình giải các bài trong đề viết bằng NNLT Pascal. Bộ Test chấm chi tiết được đính kèm, mọi người chỉ cần tải về và chấm bằng chương trình themis SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ KỲ THI HỌC SINH GIỎI CẤP TỈNH Năm học: 2017-2018 ĐỀ CHÍNH THỨC Môn thi: Tin học - Lớp 11 THPT Thời gian: 180 phút (không kể thời gian giao đề) Ngày thi: 09/03/2018 Đề có 05 câu, gồm 02 trang Số báo danh ........................ Tổng quan... thi: Tên File chương trình File liệu vào File kết Bài Hệ đếm BAI1.* BAI1.INP BAI1.OUT Bài Tìm số nguyên tố BAI2.* BAI2.INP BAI2.OUT Bài Taxi BAI3.* BAI3.INP BAI3.OUT Bài Hamming BAI4.* BAI4.INP BAI4.OUT Bài Số lớn BAI5.* BAI5.INP BAI5.OUT Dữ liệu vào đắn, không cần phải kiểm tra Trong file liệu vào, liệu dòng cách dấu cách Dấu (*) tên file chương trình biểu thị đuôi file tùy thuộc vào NNLT sử dụng ('pas' NNLT PASCAL, 'c' NNLT C, ) Bài (5 điểm):Hệ đếm Lần tiếp xúc với vấn đề sở Tin học, Mạnh ngỡ ngàng thú vị làm quen với hệ đếm số (Hệ đếm nhị phân) Mạnh nghĩ xâu kí tự bao gồm kí tự '0' '1' biểu diễn số tự nhiên N hệ đếm số đố Hải tìm biểu diễn N hệ đếm số 10 (Hệ đếm thập phân) Ví dụ: Mạnh nghĩ xâu '00010101' biểu diễn số tự nhiên 15 hệ đếm số Yêu cầu: Hãy giúp Hải chuyển xâu kí tự biểu diễn số tự nhiên N hệ đếm số thành xâu biểu diễn N hệ đếm số 10 Dữ liệu vào: Từ tệp văn BAI1.INP gồm dòng chứa xâu S có độ dài khơng q 32 ký tự Dữ liệu ra: Ghi tệp văn BAI1.OUT xâu biểu diễn N hệ đếm số 10 Ví dụ: BAI1.INP BAI1.OUT 10101110 174 Bài (5 điểm): Tìm số nguyên tố - Tìm tất số P lớn M nhỏ N thỏa mãn điều kiện sau: + Là số nguyên tố + Tổng chữ số P phải chia hết cho k Dữ liệu vào: Từ tệp văn BAI2.INP: Gồm số M, N, k (1 ≤ M,N,k ≤ 106) (các số cách dấu cách) Dữ liệu ra: Ghi tệp văn BAI2.OUT gồm số số lượng số thỏa mãn yêu cầu đầu Ví dụ: BAI2.INP BAI2.OUT BAI2.INP BAI2.OUT 35 10 11 Bài (4 Điểm): Taxi Trong dịp nghỉ hè bạn học sinh lớp 12 dự định tổ chức dã ngoại đến biển Sầm Sơn taxi Các bạn chia thành n nhóm, nhóm thứ i gồm Si bạn (1 ≤ Si ≤ 4) taxi chở tối đa hành khách Vậy lớp 12 cần thuê taxi để chở nhóm đi, với điều kiện bạn nhóm phải ngồi chung taxi (một taxi chở nhóm trở lên) Dữ liệu vào: Từ tệp văn BAI3.INP gồm: - Dòng đầu chứa số nguyên n (1 ≤ n ≤ 105) (số lượng nhóm học sinh) - Dòng số chứa dãy số nguyên S1, S2, , Sn (1 ≤ Si ≤ 4) Các số nguyên cách dấu cách với Si số học sinh nhóm thứ i Dữ liệu ra: Ghi tệp văn BAI3.OUT số nguyên số lượng tối thiểu xe taxi cần thiết để chở tất học sinh đến nơi Ví dụ: BAI3.INP BAI3.OUT 12433 Bài (3 điểm): Hamming Dãy số nguyên dương tăng dần, ước ngun tố số khơng q gọi dãy Hamming Như vậy, 10 = 2×5 số dãy Hamming, 26 = 2×13 khơng thuộc dãy Hamming Phần đầu dãy Hamming 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, Yêu cầu: Cho s4 1 3 4 1 1 4 2 1 4 3 1 1 1 1 3 3 3 3 1 2 3 3 1 3 4 2 3 4 4 4 2 4 2 1 3 4 4 1 3 66 188 05 06 07 08 Từ Test 05 đến Test 08 có liệu lớn nên tơi xin đính kèm tài liệu Các bạn tải tham khảo Bài (3 điểm): Hamming const fi='BAI4.inp'; fo='BAI4.out'; ti=1000000000; var f,ff:text; m,n,i,d,j,k,max3:longint; a:array[1 100000] of longint; b:array[1 10000] of int64; m2:array[0 30] of int64; m3:array[0 19] of int64; m5:array[0 13] of int64; {=====================================} procedure QS(L,R:longint); var i,j,g,tg:longint; begin i:=L; j:=R; g:=b[(i+j) div 2]; while i0) then write(f,0); end else writeln(f,c[n,m]); close(f); end T e s t BAI5.INP 9999999900000000000 8765432100000000 1234567801234567989 989654321087654321 1234567890123456789012345678901234567890123 456789 9876543210987654321098765432109876543210987 654321 9876543210987654321012345678901234567890987 6543210987654321012345678901234567890123456 7890123456789098765432109876543210123456789 0123456789098765432109876543210000000000 1234567890123456789098765432109876543210123 4567890123456789098765432109876543210987654 3210987654321012345678901234567890987654321 0987654321012345678901234567890000000000 BAI5.OUT 989 989898989 9876543210987654321012345678901234 5678909876543210987654321098901234 5678901234567890987654321098765432 1012345678901234567890000000000 Từ Test 05 đến Test 06 có liệu lớn nên tơi xin đính kèm tài liệu Các bạn tải tham khảo 10 ... 4) Các số nguyên cách dấu cách với Si số học sinh nhóm thứ i Dữ liệu ra: Ghi tệp văn BAI3.OUT số nguyên số lượng tối thi u xe taxi cần thi t để chở tất học sinh đến nơi Ví dụ: BAI3.INP BAI3.OUT

# data[].attributes.attachment_link.title
Đề và đáp án thi HSG môn tin học tỉnh thanh hóa năm 2017 2018

# data[].attributes.attachment_link.description
Đề thi chính thức môn Tin học Kỳ thi HSG tỉnh Thanh Hóa năm 2017 - 2018 Chương trình giải các bài trong đề viết bằng NNLT Pascal Bộ Test chấm chi tiết được đính kèm, mọi người chỉ cần tải về và chấm bằng chương trình themis 4) Các số nguyên cách dấu các

# data[].attributes.body
var a,b,i,uc,k:longint;

q:array[0..10000] of integer;

function ucln(n,m:longint):longint;

var r:longint;

begin

r:=n mod m;

while r<>0 do

begin

n:=m;

m:=r;

r:=n mod m;

end;

ucln:=m;

end;

procedure lienphan;

begin

k:=0;

repeat

if a>b then

begin

q[k]:=a div b;

a:=a mod b;

end

else

begin

q[k]:=b div a;

b:=b mod a;

end;

inc(k);

until (a=1) or (b=1);

if a<>1 then q[k]:=a else q[k]:=b;

for i:=0 to k do write(q[k],' ');

end;

begin

clrscr;

write('NHAP A= '); readln(a);

write(' B= '); readln(b);

uc:=ucln(a,b);

a:=a div uc;

b:=b div uc;

if a<=b then write(0,' ',b) else lienphan;

readln

end.

# data[].attributes.body
uses crt;

var i,j,m,n,s,d,max:longint;

a,b:array[0..100,0..100]of longint;

t,f:text;

begin

assign(t,'maxdd.inp');reset(t);

assign(f,'maxdd.out');rewrite(f);

readln(t,m,n);

for i:=1 to n do

for j:=1 to m do read(t,a[i,j]);

for i:=1 to m do

b[i,1]:=a[i,1];

for j:=2 to n do

for i:=1 to m do

if (b[i-1,j-1]>b[i,j-1]) and (b[i-1,j-1]>b[i+1,j-1]) then b[i,j]:=a[i,j]+b[i-1,j-1]

else

if (b[i,j-1]>b[i-1,j-1]) and (b[i,j-1]>b[i+1,j-1]) then b[i,j]:=a[i,j]+b[i,j-1]

else

if (b[i+1,j-1]>b[i-1,j-1]) and (b[i+1,j-1]>b[i,j-1]) then b[i,j]:=a[i,j]+b[i+1,j-1];

max:=b[1,n];

for i:=2 to m do

if b[i,n]>max then max:=b[i,n];

write(f,max);

close(t);close(f);

end.

# data[].attributes.body
b:array[1..10000] of longint;

begin

assign(fi,'MATTHU.INP'); RESET(fi);

assign(fo,'MATTHU.OUT'); rewrite(fo);

readln(fi,h,c);

for i:=1 to h do begin

for j:=1 to c do

begin

d:=d+1;

read(fi,b[d]);

end; readln(fi);

end;

for i:=1 to d-1 do

for j:=i+1 to d do

if b[i]>b[j] then

begin

t:=b[i];

b[i]:=b[j];

b[j]:=t;

end;

j:=1; m:=h-1; n:=c-1; i:=1; j:=1; k:=1;

while m>0 do

begin

for t:=1 to n do begin

a[i,j]:=b[k];

j:=j+1; k:=k+1;

end;

for t:=1 to m do begin

a[i,j]:=b[k];

i:=i+1; k:=k+1;

end;

for t:=1 to n do begin

a[i,j]:=b[k];

j:=j-1; k:=k+1;

end;

for t:=1 to m do begin

a[i,j]:=b[k];

i:=i-1; k:=k+1;

end;

i:=i+1; j:=j+1;m:=m-2; n:=n-2;

end;

if (m=0) and (h=c) then a[n div 2+1,n div 2+1]:=b[n*n];

for i:=1 to h do

begin

for j:=1 to c do

write(fo,a[i,j],' ');

writeln(fo);

end;

close(fi);

close(fo);

end.

# data[].attributes.body
#include <bits/stdc++.h>

using namespace std;

int main()

{

unsigned long long n,t,i,j,max,d,a[1001];

cin>>n;

for (i=1;i<=n;i++) cin>>a[i];

max=0;

for (i=1;i<=n;i++)

{

t=a[i];

d=1;

for (j=i+1;j<=n;j++)

{

if (a[j]>t)

{

t=a[j];

d++;

if (max<d) max=d;

}

}

}

cout<<max;

}

# data[].attributes.body
#include <bits/stdc++.h>

using namespace std;

int main()

{

unsigned long long n,t,i,j,max,d,a[1001];

cin>>n;

for (i=1;i<=n;i++) cin>>a[i];

if (n==2) max=1; else max=0;

for (i=1;i<=n;i++)

{

t=a[i];

d=1;

for (j=i+1;j<=n;j++)

{

if (a[j]>t)

{

t=a[j];

d++;

if (max<d) max=d;

}

}

}

cout<<max;

}

# data[].attributes.body
#include <bits/stdc++.h>

using namespace std;

int main()

{

long long n,t,i,j,d,a[1001],dp[1001];

cin>>n;

for (i=1;i<=n;i++) cin>>a[i];

if (n==2) t=1; else t=0;

dp[1]=1;

for (i=1;i<=n;i++)

{

dp[i]=1;

for (j=1;j<=i-1;j++)

{

if (a[i]>a[j]) dp[i]=max(dp[i],dp[j]+1);

}

t=max(t,dp[i]);

}

cout<<t;

}

# data[].attributes.body
36

1 1

1 1

1 1

1 -1

1 -1

-1 1

-1 1

-1 1

1 1

1 1

1 1

-1 -1

-1 -1

1 1

1 1

1 -1

1 -1

1 1

-1 1

-1 1

1 1

-1 1

-1 -1

1 -1

1 1

-1 -1

-1 -1

1 1

1 1

1 -1

1 1

-1 -1

-1 -1

1 -1

1 1

-1 1

# data[].attributes.body
quychaucoder

# data[].attributes.body
#include <bits/stdc++.h>

using namespace std;

#define MAX 1010

int a[MAX];

main()

{

long n;

cin>>n;

long i,j,t,d,c;

d=0;

for (i=1;i<=n;i++) cin>>a[i];

for (i=1;i<=n;i++)

{

c=0;

t=0;

for (j=1;j<=i;j++)

{

c+=a[j];

}

for (j=i+1;j<=n;j++) t+=a[j];

if (c==t) d=i;

}

cout<<d;

}

# data[].attributes.body
#include <bits/stdc++.h>

using namespace std;

#define MAX 2010

int a[MAX];

main()

{

long n,i,j,k,d,l,q,kt,t,c;

cin>>n>>k;

for (i=1;i<=n;i++) cin>>a[i];

q=0;i=0;j=0;kt=1;

while (kt==1)

{

q++;

for (i=1;i<=n;i++)

{

t=0;

for (j=i;j<=i+q-1;j++) t+=a[j];

if (t==k)

{

d=i;l=q;

kt=0;

break;

}

}

}

cout<<d<<" "<<l<<endl;

}

# data[].attributes.body
#include <bits/stdc++.h>
using namespace std;
#define MAX 1000000
long a[MAX+5];
long i,j;
     void process()
     {         fill(a+1,a+MAX+1,1);
         for (i=2;i<=1000;i++)
         {
             for (j=i*i;j<=MAX;j+=i)
             {
                 a[j]+=i;

                 if (i*i!=j) a[j]+=j/i;
             }
         }
     }
main()
 {
     long i,j,t,d,n,x;
     process();

     cin>>n;

     for (i=1;i<=n;i++)
     {
         cin>>x;

          if (a[x]>=x) cout<<"1"<<endl;
           else cout<<"0"<<endl;
     }





 }

# data[].attributes.body
#include <bits/stdc++.h>
using namespace std;
long ts(long n)
     {
        long s=0;
        while (n!=0)
        {
            s+=n%10;
            n=n/10;
        }
        return s;
     }
bool nt(long long n)
 {
     if (n<2) return(false);
     for (int i=2;i<=sqrt(n);i++)
        if (n%i==0) return(false);
     return(true);
 }
main()
{
    long n,h,i,d;
    cin>>n>>h;
    for (i=2;i<=n;i++)
    {
        if (nt(i) &&ts(i)==h)
        {
            cout<<i<<endl;
            d+=1;
        }
    }
    cout<<d;


}

# data[].attributes.body
#include <bits/stdc++.h>

using namespace std;

main()

{

ios_base::sync_with_stdio(false);

cin.tie(0);

cout.tie(0);

long i,j,c,n,sum=0,m=LLONG_MAX;

cin>>n;

vector <long long> a(n),b(n);

for (i=0;i<n;i++) cin>>a[i];

for (i=0;i<n;i++) cin>>b[i];

sort(b.begin(),b.end());

for (long long x : a)

{

auto it=lower_bound(b.begin(),b.end(),-x);

if (it!=b.end())

{

sum=x+*it;

if (m>abs(sum)) m=abs(sum);

}

if (it!=b.begin())

{

it--;

sum=x+*it;

if(m>abs(sum)) m=abs(sum);

}

}

cout<<abs(m);

}

# data[].attributes.body
bai 4. kiến thức cần có: https://wiki.vnoi.info/algo/data-structures/Stack