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

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

Школа олімпійського резерву з інформатики
14.11.2012 Тренувальний тур PDF Печать E-mail
Добавил(а) Administrator   
14.11.12 08:28

Робота в програмі ejudge

Тренувальний тур до ІІ етапу олімпіади

Задачі

1. Сума двох чисел

2. Сума квадратів двох чисел

 

 
Повторення. Масиви С++ PDF Печать E-mail
Добавил(а) Administrator   
12.09.13 00:00

Робота з масивами C++

Операція з масивом

Лінійний масив

Прямоктна таблиця

Опис

int a[100];

int i, n;//індекс, кількість елементів

int a[100][100];

int i,j, n,m;//індекс, кількість елементів

Введення

cin>>n;

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

cin>>n>>m;

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

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

cin>>a[i][j];

Виведення

for(i=1;i<=n;i++)cout<<a[i]<<” “;

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

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

cout<<a[i][j]<<” “;

Сумування

s=0;

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

s=0;

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

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

s=s+a[i][j];

Пошук

cin>>k;

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

cin>>k;

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

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

if (a[i][j]==k)

cin<<i<<” “<<j;

Пошук максимального

max=a[1];nmax=1;

for(i=2;i<=n;i++)if  (a[i]>max) {max=a[i];nmax=i;}

max=a[1];imax=1;jmax=1;

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

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

if  (a[i][j]>max) {max=a[i][j];

imax=i;jmax=j;}

Сортування

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

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

if  (a[j]>a[j+1])

{temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;}

Стирання

n=n-1;

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

a[i]=a[i+1];

Вставка

n=n+1;

for(i=n;i>=1;i--)

a[i]=a[i-1];

 

 

 

 
Заняття 8 (26.10.2016) PDF Печать E-mail
Добавил(а) Administrator   
29.11.16 09:35

Повторення

Робота з масивами

Операція з масивом

Лінійний масив

Прямокутна таблиця

Опис

int a[100];

int i, n;//індекс, кількість елементів

int a[100][100];

int i,j, n,m;//індекс, кількість елементів

Введення

cin>>n;

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

cin>>n>>m;

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

for(j=0;j<m;j++)

cin>>a[i][j];

Виведення

for(i=0;i<n;i++)cout<<a[i]<<” “;

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

for(j=0;j<m;j++)

cout<<a[i][j]<<” “;

Сумування

s=0;

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

s=0;

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

for(j=0;j<m;j++)

s=s+a[i][j];

Пошук

cin>>k;

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

cin>>k;

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

for(j=0;j<m;j++)

if (a[i][j]==k)

cin<<i<<” “<<j;

Пошук максимального

max=a[0];nmax=0;

for(i=1;i<n;i++)if  (a[i]>max) {max=a[i];nmax=i;}

max=a[0][0];imax=1;jmax=1;

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

for(j=0;j<m;j++)

if  (a[i][j]>max) {max=a[i][j];

imax=i;jmax=j;}

Сортування

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

for(j=0;j<n-1;j++)

if  (a[j]>a[j+1])

{temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;}

 

Сортування

swap

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

for(j=0;j<n-1;j++)

if  (a[j]>a[j+1])

swap(a[j],a[j+1]);

 

Сортування

sort

#include <iostream>

#include <algorithm>

int a[100],n;

using namespace std;

int main()

{cin>>n;

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

sort(a,a+n);

for(int i=0;i<n;i++)cout<<a[i]<<" ";

    cout <<endl;

    return 0;

}

 

Стирання

n=n-1;

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

 a[i]=a[i+1];

 

Вставка

n=n+1;

for(i=n-1;i>k;i--)

a[i]=a[i-1];

a[k]=x;

 

Перебір

#include <iostream>

#include <fstream>

#include <math.h>

#include <vector>

#include <algorithm>

using namespace std;

vector <int> a;

 ifstream f;

 ofstream g;

void printper(int n);

int main()

{

    f.open("input.dat");

    g.open("output.ans");

    int n;

    f >> n;

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

        a.push_back(i);

    }

    printper(n);

    while (next_permutation(a.begin(),a.end())){

        printper(n);

    };

    //printper(n);

    f.close();

    g.close();

    return 0;

}

void printper(int n)

{

    for (int i=0;i<n-1;i++){

        g << a[i] << " ";

    }

    g << a[n-1] << endl;

}

 
 
01.10.2014 Задачі. Числа Фібоначі. Прості числа. PDF Печать E-mail
Добавил(а) Administrator   
06.10.14 11:41

Числа Фібоначі

Input file name: input.txt
Output file name: output.txt
Time limit: 1 s
Memory limit: 64 M

Хтось вмістив пару новонароджених кроликів в деякому місці, обгородженому з усіх боків стіною. Скільки пар кроликів народиться при цьому протягом року, якщо природа кроликів така, що кожний місяць, починаючи з третього місяця після свого народження, пара кроликів породжує іншу пару?

Input format

Вхідні дані. В рядку вхідного файла записано єдине число N — кількість місяців.

Output format

Вихідні дані. Вихідний файл містить N рядків чисел.

Examples

Input in input.txt Output in output.txt
4
1
1
2
3
5
1
1
2
3
5

 

 

#include "fstream"
using namespace std;
ifstream cin("input.txt");
ofstream cout("output.txt");
int main()
{
int n;
unsigned long long f1,f2,f3;
cin>>n;
if(n==1)cout<<1<<endl;else
if(n==2)cout<<1<<endl<<1<<endl;else
{f1=1;f2=1;
cout<<f1<<endl<<f2<<endl;
for (int i=3;i<=n;i++)
{f3=f1+f2;
f1=f2;
f2=f3;
cout<<f3<<endl;
}
}

return 0;}


Задача Прості числа

Input file name: input.txt
Output file name: output.txt
Time limit: 1 s
Memory limit: 64 M

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

Input format

Єдиний рядок містить число N.

Output format

Єдиний рядок файлу містить кількість простих чисел.

Examples

Input in input.txt Output in output.txt
10
4

 

 

#include "fstream"
#include "math.h"
using namespace std;
float n,p,k;
int i,l;
int main()
{
unsigned long long a[100];

ifstream cin("input.txt");
ofstream cout("output.txt");
cin>>n;
        for (l=2;l<=n;l++)
        {
                p=0;
        for (i=2;i<=int(sqrt(float(l)));i++)
                if (l%i==0) p=1;
                if(p==0)
                {
                        k++;
                }
        }
cout<<k<<endl;
return 0;
}

 

 

 
Алгоритми для роботи з рядками PDF Печать E-mail
Добавил(а) Гісь   
06.05.11 12:28

06 травня 2011року

Алгоритми для роботи з рядками

 

Перестановка слів

   Поменяйте в строке имя и фамилию человека.

 

Технічні умови

   Вхідні дані

   Вхідний файл містить один рядок, у якому записані прізвище та ім'я людини (відокремлені  рівно одним пропуском).

   Вихідні дані

   У вихідний файл виведіть цю ж інформацію, проте спочатку ім'я, а потім прізвище, також відокремлені рівно одним пропуском.

 

Інформація про задачу

Ліміт часу: 0.1 секунди
Ліміт пам`яті: 64 MB
Бали за пройдений тест: 10
Складність: 1%
81/82

Приклад

Приклад вхідних даних

Pupkin Vasya

Приклад вихідних даних

Vasya Pupkin

 

 

Довгий корінь

   Для заданого натурального числа А потрібно знайти найбільше число В таке, що B2 ≤ A.

 

Технічні умови

   Вхідні дані

   У вхідному файлі записано натуральне число A (A ≤ 10100).

   Вихідні дані

   У вихідний файл виведіть максимальне натуральне число B, квадрат якого не перевищує A. Число B слід виводити без лідируючих нулів.

 

Інформація про задачу

Ліміт часу: 2 секунди
Ліміт пам`яті: 64 MB
Бали за пройдений тест: 4.7619
Складність: 54%
16/35

Приклад

Приклад вхідних даних

17

Приклад вихідних даних

4

 

КМП

   Знайти всі входження рядка T у рядок S.

 

Технічні умови

   Вхідні дані

   У першому рядку вхідного файлу записано рядок S, у другому рядку вхідного файлу записано рядок T. Довжини рядків більші 0 і менші 50000, рядки містять лише латинські літери.

   Вихідні дані

   Виведіть номери символів, починаючи з яких рядок T входить у рядок S у порядку зростання. Як це за звичай прийнято у програмістів, нумерація символів починається з нуля.

 

Інформація про задачу

Ліміт часу: 2 секунди
Ліміт пам`яті: 64 MB
Бали за пройдений тест: 11.1111
Складність: 10%
36/40

Приклад

Приклад вхідних даних

ababbababa
aba

Приклад вихідних даних

0 5 7

 

Рядки

   Хлопчик Кирило написав одного разу на аркуші паперу рядочок, який складався з великих та маленьких латинських літер, а після цього пішов грати у футбол. Коли ж він повернувся, то виявив, що його друг Дмитро написав під його рядочком ще один рядочок такої ж двожини. Дмитро стверджує, що свій рядочок він отримав циклічнм зсувом рядочка Кирила на декілька кроків праворуч (циклічний зсув рядка abcde на 2 позиції праворуч дасть рядок deabc). Проте Дмитро відомий тим, що може випадково помилитись у великій кількості обчислень, тому Кирил у розгубленості - чи вірити Дмитру? Допоможіть йому! За заданими рядками виведіть мінімально можливий розмір зсуву або -1, якщо Дмитро помилився.

 

Технічні умови

   Вхідні дані

   Перші два рядки вхідного файлу містять рядки Кирила та Дмитра відповідно. Довжини рядків однакові, не перевищують 10000 і не рівні 0.

   Вихідні дані

   У вихідний файл виведіть єдине число - відповідь на поставлену задачу.

 

Інформація про задачу

Ліміт часу: 2 секунди
Ліміт пам`яті: 64 MB
Бали за пройдений тест: 11.1111
Складність: 30%
23/33

Приклад

Приклад вхідних даних

abcde
deabc

Приклад вихідних даних

2

 

Циклічний рядок

   Рядок S було записано багато разів підряд, після чого з отриманого рядка взяли підрядок і дали вам. Ваша задача визначити мінімально можливу довжину початкового рядка S.

 

Технічні умови

   Вхідні дані

   У першому і єдиному рядку вхідного файлу записано рядок, який містить лише латинські літери, довжина рядка не перевищує 50000 символів.

   Вихідні дані

   У вихідний файл потрібно вивести одне число - відповідь до задачі.

Інформація про задачу

Ліміт часу: 2 секунди
Ліміт пам`яті: 64 MB
Бали за пройдений тест: 11.1111
Складність: 25%
3/4

Приклад

Приклад вхідних даних

abababa

Приклад вихідних даних

2

 

 


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

Статистика

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

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

Нет