Сайт підготовки до олімпіади з інформатики

програмування в С++

Школа олімпійського резерву з інформатики
Готуємось до олімпіади 2015-1 PDF Печать E-mail
Добавил(а) Administrator   
15.01.16 21:06

Готуємось до олімпіади 2015-1
1. Одна чверть
Дві точки на площині, що не лежать на координатних осях, задані своїми координатами: А(Х1, Y1) і B(X2, Y2). Перевірити, чи лежать ці точки в одній координатній чверті.
2. Кількість днів між датами (http://www.e-olymp.com/uk/problems/147)
Дано дві календарні дати. Визначити кількість днів між цими датами. Не забудьте, що високосним вважається рік, номер якого кратний чотирьом та не кратний 100, або кратний 400.
В першому і другому рядку вхідного файлу записано по одній календарній даті у форматі D M Y ( день місяць рік). 1 ≤ D ≤ 31, 1 ≤ M ≤ 12,1 ≤ Y ≤ 2100. У вихідний файл потрібно записати одне число – кількість днів між датами
Наприклад,
1 12 2008 31 12 2008 31
3. Чотиризначні числа
Знайти всі чотиризначні числа, кожне з яких записано різними цифрами і має наступні властивості: якщо цифри шуканого числа деяким чином переставити місцями і одержане таким способом нове чотиризначне число відняти від шуканого, то різницею буде чотиризначне число, записане тими ж цифрами. Вказати кількість таких чисел.
4. Заміна нулів
Дано лінійну таблицю заданої довжини N, яка містить велику кількість нульових елементів. Скласти на алгоритмічній мові алгоритм, що заміняє кожну групу нулів, що йдуть підряд на:
а) один нульовий елемент, якщо число таких нулів не парне;
б) два нульових елементи, якщо число таких нулів парне.
5. Зафарбовані відрізки
На прямій зафарбували N відрізків. Відомі L(і), R(і) – ліві і праві кінці відрізків. Знайти суму довжин усіх зафарбованих частин прямої.
6. Заповнення по діагоналях
Скласти алгоритм заповнення двомірної таблиці A[1:n,1:n] по діагоналях з північного сходу на південний захід числами 1, 2, ..., n2, починаючи з північно–західного кута таблиці.
7. Визначення сторінок (В.О.Бардадим, В.В.Бондаренко)
При друкуванні великих документів може виникнути потреба друкувати не весь документ, а тільки деякі його сторінки. Серед аргументів програми друку є рядок з послідовністю номерів сторінок. Потрібно надрукувати не окремі сторінки, а діапазони сторінок і, можливо, вказувати початок і кінець діапазонів, а не послідовні числа.
Завдання: Напишіть програму, яка буде перетворювати списки сторінок у відповідну послідовність номерів сторінок.
Вхідні дані: Вхідний файл PRІNT.DAT містить один рядок, який має таку структуру: сторінка–1, сторінка–2, сторінка-3, ..., сторінка – N.
Сторінка – і – або номер сторінки, або діапазон у вигляді початок–кінець (початок <= кінець).
Сторінки та діапазони перераховані в зростаючому порядку і не перетинаються. Діапазон включає початкову та кінцеву сторінки. Номери сторінок – числа від 1 до 1000000. 1 <= N <= 1000000.
Вихідні дані: Результат треба вивести до файлу PRІNT.SOL у вигляді сторінка-1, сторінка-2, сторінка-3,..., сторінка – М без пропусків.
Технічні вимоги: Ваша програма повинна мати назву PRІNT.*, де розширення залежить від мови програмування.
Приклад:
PRІNT.DAT
1,4-5,7-7,10-20
PRІNT.SOL
1,4,5,7,10,11,12,13,14,15,16,17,18,19,20
8. Мікроорганізми (М.З.Грузман)
Для обробки фотознімків мікроорганізмів, виконаних під мікроскопом, кожну фотографію розділено на дрібні клітинки. В кожній клітинці, яка повністю накрита одним з мікроорганізмів, або в якій міститься частина мікроорганізму, зроблено позначку.
Вважається, що дві клітинки з позначками належать одному й тому ж мікроорганізмові, якщо з однієї з них можна потрапити в іншу, рухаючись по клітинках з позначкою ліворуч, праворуч, вгору або вниз.
Дано: прямокутне фото розміром m x n клітинок, частину яких позначено.
Отримати: кількість організмів на фотознімку.

* * *
* * * * * * * *
* *
* * *
* * *
* * * * * * *
Технічні вимоги: Введення розмірів m та n на фотознімку здійснюється з клавіатури за запитом програми. Саме фото у закодованому вигляді міститься у файлі PHOTO.DAT. Кожному рядку клітинок відповідає запис у файлі. Позначеній клітинці відповідає символ "*", а непозначеній – "0" (нуль).
Приклад. Фотознімок 6 х 10 має вигляд, зображений на рисунку. На цьому знімкові 4 мікроорганізми.


9. Дужки
Проаналізувати заданий текст з метою виявлення помилок у використанні дужок. Можливі три типи помилок:
а) невідповідність дужок ( і ) по кількості;
б) закриваюча дужка розміщена раніше відкриваючої;
в) відсутній зміст між дужками.
Результатом роботи програми повинно бути повідомлення про типи допущених помилок та їх місце в тексті (якщо це можливо).
10. Греко–латинський квадрат

1 2 3 4
4 3 2 1
2 1 4 3
3 4 1 2
Греко–латинським квадратом називається квадрат N x N, в кожному рядку, в кожному стовпці і в кожній діагоналі якого містяться всі цілі числа від 1 до N. Приклад такого квадрата 4 х 4.
Написати програму, яка:
будує хоча б один квадрат порядку N;
будує всі квадрати порядку N;
будує всі квадрати порядку N так, що не можна отримати один з іншого при допомозі поворотів і обертань навколо осей симетрії.

 
III етап олімпіади з інформатики PDF Печать E-mail
Добавил(а) Administrator   
08.02.17 09:44

Завдання 1 туру

Завдання 2 туру

Результати учасників

Коди учасників для дорозв'язування олімпіади

 
Заняття 11.09.2019 PDF Печать E-mail
Добавил(а) Administrator   
30.09.19 13:44

1 Завдання 11.09.2019 Цифри

Проста задача на цифри

https://www.e-olymp.com/uk/problems/1

https://www.e-olymp.com/uk/problems/903

 https://www.e-olymp.com/uk/problems/8840 ... https://www.e-olymp.com/uk/problems/8854

 

 2 Завдання 11.09.2019 Масиви

https://www.e-olymp.com/uk/problems/4765

 https://www.e-olymp.com/uk/problems/2099

 https://www.e-olymp.com/uk/problems/841

 https://www.e-olymp.com/uk/problems/85

 https://www.e-olymp.com/uk/problems/2668

 https://www.e-olymp.com/uk/problems/1055

 

 

3 Заняття 11.09.2019 Поняття граф

Теорія графів

Основні алгоритми роботи з графами:

 

http://www.e-olymp.com/uk/problems/4764 -  Матриця суміжності, степінь вершин

http://www.e-olymp.com/uk/problems/4763 -  Від списку ребер до матриці суміжності

 

https://www.e-olymp.com/uk/problems/3987 - Повний граф

Проста задача на цифри

https://www.e-olymp.com/uk/problems/1

https://www.e-olymp.com/uk/problems/903

 

https://www.e-olymp.com/uk/problems/8840

https://www.e-olymp.com/uk/problems/8841

https://www.e-olymp.com/uk/problems/8842

https://www.e-olymp.com/uk/problems/8843

https://www.e-olymp.com/uk/problems/8844

https://www.e-olymp.com/uk/problems/8845

https://www.e-olymp.com/uk/problems/8846

https://www.e-olymp.com/uk/problems/8847

https://www.e-olymp.com/uk/problems/8848

https://www.e-olymp.com/uk/problems/8849

https://www.e-olymp.com/uk/problems/8850

https://www.e-olymp.com/uk/problems/8851

https://www.e-olymp.com/uk/problems/8852

https://www.e-olymp.com/uk/problems/8853

https://www.e-olymp.com/uk/problems/8854

 

 

 

 
Заняття (21.02.2018) PDF Печать E-mail
Добавил(а) Administrator   
23.03.18 10:44

http://nvk26.lutsk.ua/cgi-bin/new-client?contest_id=59

school2018-1school2018-30

пароль 1

 

Розвязки

Проста задача?

Time limit: 1c

Memory limit: 64m

reeWorld любить садити Таріка. Якось reeWorld задав Таріку дуже цікаву задача.

На здивування Тарік зробив її достатньо швидко, тому reeWorld вирішив знову все узагальнити.

Чи справитесь з новою задачею ви?

Вхідні дані:

В першому рядку задано 1<=T<=20 - кількість груп тестів.

В наступних T рядках знаходиться по одному числу 1<=A_i<=10^18.

Вихідні дані:

Для кожного заданого чила необхідно перевірити парність кількості дільників.

В кожному окремому рядку необхідно вивести Yes, якщо кількість дільників даного числа непарна, або No, якщо кількість дільників парна.

Приклад 1:

4

1

3

4

7

--------

Yes

No

Yes

No

#include <fstream>
#include <math.h>
using namespace std;

ifstream cin("input.txt");
ofstream cout("output.txt");

int main()
{
        int t;
        cin>>t;

        while(t)
        {
                long long a, b;
                cin>>a;
                b = sqrt((double)a);

                if(b*b==a || (b+1)*(b+1)==a)
                {
                        cout<<"Yes\n";
                }else
                {
                        cout<<"No\n";
                }

                t--;
        }
        return 0;
}


Точки на прямій

Timelimmit: 1c

MemoryLimit: 64m

Визначемо діаметр мультимножини(набору) точок на прямій як максимальна відстань між двома точками цієї мультимножини(набору).

Відповідно діаметр мультимножини, яка складається з однієї точки рівний 0.

Задано N точок. Яку мінімальну кількість точок потрібно видалити, щоб діаметр мультимножини точок які залишилися не перевищував d.

Вхідні дані:

В першому рядку задано два цілих числа N і d(1 ≤ n ≤ 100, 0 ≤ d ≤ 100) - кількість точок і обмеження на діаметр.

В другому рядку задано N чисел(1 ≤ Xi ≤ 100) - координати точок.

Вихідні дані:

Одне число - мінімальна кількість точок, які потрібно видалити.

Приклад 1:

3 1

2 1 4

------

1

Приклад 2:

3 0

7 7 7

------

0

Приклад 3:

6 3

1 3 4 6 9 10

------

3

Пояснення:

В першом тесті вигідно видалити точку з координатою 4. Новий діаметр буде рівний 2-1=1.

В другому тесті діаметр одразу рівний 0.

В третьому вигідно видалити точки з координатами 1, 9 і 10.

#include <fstream>
#include <algorithm>
using namespace std;

ifstream cin("input.txt");
ofstream cout("output.txt");

int main()
{
        int n, m[105], ma = -1000000, mi = 100000, i, tr = 10000, d, j;

        cin >> n >> d;
        for (i = 0; i < n; i++)
        {
                cin >> m[i];
                ma = max(ma, m[i]);
                mi = min(m[i], mi);
        }

        if (ma - mi <= d)
        {
                cout << 0;
                return 0;
        }

        sort(m, m + n);

        for (i = 0; i < n; i++)
        {
                for (j = i; j < n; j++)
                {
                        if (m[j] - m[i] > d)
                        {
                                break;
                        }
                }
                tr = min(tr, n - (j - i));
        }

        cout << tr;

        return 0;
}


Ізіч

Time limmit: 1c

Memory Limit: 64m

*Наші тести не готові. Скоро 3 тур. Але ж головна ціль авторів контеста - зробити ще одну задачу.*

Дехто з ніком reeWorld хотів дати задачу на цетроїдну декомпозицію. Нехай задано граф, який є деревом.

Очевидно, що в такому графі всі вершини, крім листків, є шарнірами. Центроїдом даного графа буде такий шарнір, який розділяє даний граф на компонент-зв'язності розмірами в 2 і більше разів меншими ніж початковий.

Отже, постало Q запитань. Скільки серед заданих N чисел менших за A_i.

Вхідні дані:

В першому рядку знаходиться число 5<=N<=100000 - кількість заданих чисел.

В другому рядку знаходяться задані числа 0<=M_i<=1000000007.

В наступному рядку знаходиться кількість запитів 5<=Q<=100000.

В наступних Q рядках знаходяться по одному числу 0<=A_i<=1000000007.

Вихідні дані:

Для кожного i-ого запиту необхідно вивести кількість заданих чисел менших за A_i.

Приклад:

10

2 4 13 14 16 12 4 12 15 10

10

16

3

9

1

0

10

14

11

6

16

-----------------------

9

1

3

0

0

3

7

4

3

9

#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
#include <time.h>
using namespace std;

ifstream cin("input.txt");
ofstream cout("output.txt");

//ofstream dat("dat1.txt");
//ofstream ans("ans1.txt");

#define N 100
#define Q 10
#define MOD 10007
//#define MOD 1000000007

vector<int> v;
set <pair<int, int> > s;
set <pair<int, int> >::iterator it;

int main()
{
        srand(time(NULL));

        if (1)
        {
                int n, i, a, q;

                cin >> n;
                for (i = 1; i <= n; i++)
                {
                        cin >> a;
                        v.push_back(a);
                }

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

                for (i = 0; i < n; i++)
                {
                        s.insert(make_pair(v[i], i));
                }

                cin >> q;

                for (i = 0; i < q; i++)
                {
                        cin >> a;
                        it = s.lower_bound(make_pair(a, -1));

                        if (it == s.end())
                        {
                                cout << n << "\n";
                        }
                        else
                        {
                                cout << it->second << "\n";
                        }
                }

                return 0;
        }
        else
        {
                /*long long i, j, a, b;
                dat << N<<"\n";
                for (i = 0; i < N; i++)
                {
                        a = rand()*rand()*rand()%MOD + rand() - rand();
                        a %= MOD;
                        if (a < 0) { a += MOD; }
                        dat << a<<" ";
                }
                dat << "\n" << Q << "\n";

                for (i = 0; i < Q; i++)
                {
                        a = rand()*rand()*rand() % MOD + rand() - rand();
                        a %= MOD;
                        if (a < 0) { a += MOD; }
                        dat << a << "\n";
                }*/
        }
}


 

Рядочки

Time limit: 1c

Memory limit: 64m

Вам задано рядок довжиною від 4 до 5000 символів, який складається лише з малих літер анлійського алфавіту.

Необхідно перевірити, чи можна розділити даний рядок на 4 непусті паліндроми.

Вхідні дані:

В єдиній стрічці знаходиться вхідний рядок.

Вихідні дані:

Виведіть Yes, якщо рядок можна розділити на 4 непусті паліндроми або No інакше.

Приклад 1:

abaaaa

------------

Yes

Приклад 2:

abacaba

------------

No

#include <fstream>

#include <algorithm>

#include <math.h>

#include <vector>

using namespace std;

ifstream cin("input.txt");

ofstream cout("output.txt");

vector <int> primeNumbers;

long long n, i, answer;

int *productComposition;

long long minAns;

bool isPrime(int number)

{

      int i;

      for (i = 2; i*i <= number; i++)

      {

            if (number%i == 0)

            {

                  return false;

            }

      }

      return true;

}

void nextProducts(unsigned long long product, int productCompositionPosition, long long numberOfDividers)

{

      for (; productComposition[productCompositionPosition - 1] > productComposition[productCompositionPosition];)

      {

            productComposition[productCompositionPosition]++;

            numberOfDividers = numberOfDividers / productComposition[productCompositionPosition] * (productComposition[productCompositionPosition] + 1);

            product *= primeNumbers[productCompositionPosition - 1];

            if (product >= n)

            {

                  break;

            }

            if (answer < numberOfDividers)

            {

                  answer = numberOfDividers;

                  minAns = product;

            }

            if (product*primeNumbers[productCompositionPosition] < n)

            {

                  nextProducts(product, productCompositionPosition + 1, numberOfDividers);

            }

      }

      productComposition[productCompositionPosition] = 0;

}

int main()

{

      answer = 1;

      cin >> n;

      //lets find all necessary prime numbers

      unsigned long long timeN = 1;

      for (i = 2; timeN < n; i++)

      {

            if (isPrime(i))

            {

                  timeN *= i;

                  primeNumbers.push_back(i);

            }

      }

      // 1 = (1^BIG) * (2^0) * (3^0) * (5^0) * (7^0)...

      productComposition = new int[primeNumbers.size() + 1];

      productComposition[0] = log2(n) + 1;

      for (i = 1; i <= primeNumbers.size(); i++)

      {

            productComposition[i] = 0;

      }

      //main search

      nextProducts(1, 1, 1);

      //lets cout answer

      cout << answer << "\n" << minAns;

      return 0;

}


Дільники

Time limmit: 1c

Memory Limit: 64m

Ви знаєте китайські теореми про остачі???

От і добре, в цій задачі вони не потрібні.

В цій задачі потрібно знайти число, яке було би менше або рівне за дане і мали би при цьому максимальну кількість дільників.

Вхідні дані:

Число 2<=N<=10^17

Вихідні дані:

В першому рядку неохідно вивести максимально можливу кількість дільників, яку може мати число менше рівне за N.

в другому рядку потрібно вивести число, яке би мало відповідну кількість дільників і було менше за N. Якщо таких чисел декілька, то виведіть найменше з них.

Приклад 1:

10

-------

4

6

Приклад 2:

1000000

-------

240

720720

Пояснення

У другому прикладі є 5 чисел менших за 10^6, які мають 240 дільників: 720720, 831600, 942480, 982800, 997920.

Примітка

Якби N=10^60 то відповідь була би:

521838526464

955140758164680860628432565596792358941635407885397923872000

#include <fstream>
#include <algorithm>
#include <math.h>
#include <vector>
using namespace std;

ifstream cin("input.txt");
ofstream cout("output.txt");

vector <int> primeNumbers;
long long n, i, answer;
int *productComposition;
long long minAns;

bool isPrime(int number)
{
        int i;
        for (i = 2; i*i <= number; i++)
        {
                if (number%i == 0)
                {
                        return false;
                }
        }
        return true;
}

void nextProducts(unsigned long long product, int productCompositionPosition, long long numberOfDividers)
{

        for (; productComposition[productCompositionPosition - 1] > productComposition[productCompositionPosition];)
        {
                productComposition[productCompositionPosition]++;
                numberOfDividers = numberOfDividers / productComposition[productCompositionPosition] * (productComposition[productCompositionPosition] + 1);
                product *= primeNumbers[productCompositionPosition - 1];
                if (product >= n)
                {
                        break;
                }

                if (answer < numberOfDividers)
                {
                        answer = numberOfDividers;

                        minAns = product;
                }
                if (answer == numberOfDividers)
                {
                        if (minAns>product)
                        {
                                minAns = product;
                        }
                }

                if (product*primeNumbers[productCompositionPosition] < n)
                {
                        nextProducts(product, productCompositionPosition + 1, numberOfDividers);
                }
        }
        productComposition[productCompositionPosition] = 0;
}

int main()
{
        answer = 1;
        cin >> n;

        //lets find all necessary prime numbers
        unsigned long long timeN = 1;
        for (i = 2; timeN < n; i++)
        {
                if (isPrime(i))
                {
                        timeN *= i;
                        primeNumbers.push_back(i);
                }
        }

        // 1 = (1^BIG) * (2^0) * (3^0) * (5^0) * (7^0)...
        productComposition = new int[primeNumbers.size() + 1];
        productComposition[0] = log2(n) + 1;
        for (i = 1; i <= primeNumbers.size(); i++)
        {
                productComposition[i] = 0;
        }

        //main search
        nextProducts(1, 1, 1);

        //lets cout answer
        cout << answer << "\n" << minAns;

        return 0;
}


Гроб

Time limmit: 1c

Memory Limit: 64m

*reeWorld вирішив що 5 ізічів на один контест вже і так достатньо, тому добавив ще один.*

Тарік зіткнувся з проблемою недостачі грошей, а тому покинув програмування і подався вкладати плитку.

У нього є безліч плиток Г-подібного троміно. Йому потрібно замостити кімнату розміроv 4*3N.

Скількома способами він може це зробити?

Найвідовіші вчителі математики в Волинській області зіткнулися з проблемою розв'язання даної задачі...

Проте, ви то точно вмієте виводити формулу в послідовності :) gggl

Вхідні дані:

Одне число 1<=N<=10^18

Вихідні дані:

Кількість можливих замощень кімнати.

Оскільки відповідь може бути достатньо великою, потрібно вивести її по модулю 1000000007

#include <fstream>
using namespace std;

ifstream cin("input.txt");
ofstream cout("output.txt");

#define MOD 1000000007

struct mat
{
        long long a[3][3];
};

mat mult(mat a, mat b)
{
        mat c;
        long long i, j, l;
        for(i=0;i<3;i++)
        {
                for(j=0;j<3;j++)
                {
                        c.a[i][j]=0;
                        for(l=0;l<3;l++)
                        {
                                c.a[i][j]+=a.a[i][l]*b.a[l][j];
                                c.a[i][j]%=MOD;
                        }
                }
        }

        return c;
}

mat sqr(mat a)
{
        return mult(a, a);
}

mat binpow(mat a, long long n)
{
        if(n==1)
        {
                return a;
        }else if(n%2==0)
        {
                return sqr(binpow(a, n/2));
        }else
        {
                return mult(sqr(binpow(a, n/2)), a);
        }
}

int main()
{
        long long n, i, j;

        cin >> n;

        if(n==1)
        {
                cout<<4;
                return 0;
        }else if(n==2)
        {
                cout<<18;
                return 0;
        }else if(n==3)
        {
                cout<<88;
                return 0;
        }

        mat m;

        m.a[0][0] = 0; m.a[0][1] = 0; m.a[0][2] = -4;
        m.a[1][0] = 1; m.a[1][1] = 0; m.a[1][2] = -22;
        m.a[2][0] = 0; m.a[2][1] = 1; m.a[2][2] = 10;

        mat res = binpow(m, n-3);

        long long result = res.a[0][2]*4 + res.a[1][2]*18 + res.a[2][2]*88;
        result%=MOD;

        cout<<result;

        return 0;
}

 
Список сайтів, пов’язаних с задачами і олімпіадами по програмуванню PDF Печать E-mail
Добавил(а) Administrator   
13.05.10 08:54

Література

1. Гісь І.В. Обчислювальна геометрія

2. Омелян П.П. Обчислювальна геометрія

Список сайтів, пов’язаних с задачами і олімпіадами по програмуванню:

  • http://vippo.lutsk.ua/vippo-olimp    – Волинська Інтернет-олімпіада з програмування
  • http://www.school-olymp.narod.ru    – школа олімпійського резерву при ВІППО
  •  http://www.olymp.vinnica.ua   – Всеукраїнські Інтернет-олімпіади з різних предметів (фізика, інформатика). На сайті розміщена цікава інформація про Всеукраїнські олімпіади по інформатиці, фізиці. Проводилася мережна олімпіада по інформатиці.
  • http://www.uoi.in.ua  – Всеукраїнська олімпіада з інформатики
  • http://www.e-olimp.com.ua E-Olimp система підготовки та проведення олімпіад зі спортивного програмування
  • http://www.qbit.org.ua/ -Молодёжное научное общество QBit - Кубит - г. Харьков
  • http://algolib.chat.ru  –алгоритми: методи розв’язання
  • http://algolist.manual.ru  –алгоритми: методи розв’язання
  • http://olympiads.win.true.nl/ioi  – Міжнародна олімпіада з інформатики
  • http://www.olympiads.ru  - Події, задачі, тести, рішення, коментарі. На сайті також можна викачати бібліотеку для написання "перевірялок" до задач - Testlib.
  •  http://neerc.ifmo.ru/School/  - На цьому сайті міститься інформація про олімпіади школярів по інформатиці, які проходять в Росії, в яких беруть участь  Петербурзькі школярі
  •  http://www.olympiada.km.ua/ - Задачі заочних і обласних олімпіад Хмельницької області. Архіви турнірів, конкурсів. Багато іншої корисної інформації.
  •  http://comp-science.narod.ru/ - Матеріали олімпіад школярів по програмуванню в Пермській області; підготовка до олімпіад по програмуванню; дидактичні матеріали по алгебрі і геометрії; технологія генерації дидактичних матеріалів по математиці; дидактичні матеріали по інформатиці (задачі, тести); методична скарбничка; посилання на освітні ресурси Internet.
  •  http://acm.timus.ru -  Тут ви можете знайти деяку кількість задач з різних змагань. Перевіряюча система дозволяє вам перевірити ваш розв’язок для кожної задачі.
  •  http://www.informatics.ru/ - Даний сайт присвячений російським олімпіадам школярів по інформатиці. Автори сайту - члени журі і наукового комітету Всеросійської олімпіади, а також тренери збірної команди Росії для міжнародної олімпіади. Тут викладаються матеріали Всеросійських олімпіад, учбово-тренувальних зборів по інформатиці, різні книги і статті, присвячені даній тематиці.
  •  http://g6prog.narod.ru - Сайт присвячений докладному розбору олімпіадних задач по інформатиці. Рівень задач від міської до міжнародної олімпіад. Програмні тексти до задач не додаються (представлений словесний опис рішення). До деяких задач додаються тести. Є багато корисних книг по олімпіадних задачах і велика кількість посилань на аналогічні ресурси.
  •  http://byoi.narod.ru - Архів республіканських, міських, районних олімпіад, зборів до IOI. Підбір рідкісних, ефективних алгоритмів.
  •  http://homepages.compuserve.de/chasluebeck - Дуже великий архів задач по інформатиці на російській мові.
  •  http://www.stream.newmail.ru/index.html - Тут можна отримати відповідь на питання про олімпіади, взнати останні новини, підготуватися до олімпіад. На сайті є бібліотека книг і докладний каталог ресурсів.
Последнее обновление 11.11.10 20:04
 


Страница 18 из 43

Статистика

Пользователей : 269
Статей : 225
Просмотрено статей : 127899

Вход/Регистрация

Нет