2006-I

Đề thi gồm tổng cộng 6 bài.

Mức dễ

Bài 1. MODULO

Bài 2. HERMAN

Các bài dễ sẽ được trình bày ở trong trang này.

Mức trung bình

Bài 3. OKVIRI

Bài 4. SLIKAR

Bài 5. BOND

Bài 6. DEBUG

Các bài khó sẽ được trình bày trong các trang con.

Bài 1. MODULO

Bài toán

Nhập vào 10 số, đếm xem có bao nhiêu modulo khác nhau thu được khi chia các số này cho 42.

Input: Gồm 10 dòng, mỗi dòng chứa một số nguyên không âm nhỏ hơn 1000.

Output: Số lượng giá trị phân biệt thu được trong modulo 42.

Code này của Nguyễn Tiến Trung Kiên

#include <stdio.h>

int i, r;

bool ok[12309];

main(){

    int i, x;

    for (i=1; i<=10; i++){

        scanf("%d", &x);

        ok[x%42]=true;

    }

    for (i=0; i<42; i++)

    if (ok[i]) r++;

    printf("%d\n", r);

}

Bài 2. HERMAN

Bài toán

Trong hình học taxicab, định nghĩa khoảng cách giữa hai điểm A và B là |xA-xB| + |yA-yB|. Tính diện tích hình tròn bán kính R trong hình học Euclid và hình học taxicab. Tất cả các định nghĩa khác của hình học taxicab bao gồm định nghĩa hình tròn đều giống với hình học Euclid.

Input: Số nguyên R (R<=10000).

Output: Dòng thứ nhất in ra diện tích hình tròn bán kính R trong hình học Euclid, dòng thứ hai in ra diện tích hình tròn bán kính R trong hình học taxicab.

Code này của Nguyễn Tiến Trung Kiên

#include <stdio.h>

#include <math.h>

main(){

    double R;

    scanf("%lf", &R);

    printf("%lf\n", R*R*M_PI);

    printf("%lf\n", R*R*2);

}

Các bài còn lại sẽ được trình bày trong các trang con.