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

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

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

Задача 1. «Фотокартка» (PHOTO) – 10 балів.

Учень на новенькому кольоровому струменевому принтері учень надрукував фотографії зроблені у свій день народження. Розмір фото AxB cм. Роздільна здатність принтера R точок на дюйм (1 дюйм = 2,54 см).

Завдання

Визначити скільки пікселів містить надруковане фото?

Вхідні дані

Перший рядок містить два дійсні числа, які задають розмір фотокартки. Останній  рядок містить натуральне число, яке задає роздільну здатність. Усі числа вхідного файлу за абсолютною величиною не перевищують 1 000 000 000.

Вихідні дані

Єдиний рядок файлу містить шукану кількість мегапікселів на фотографії, як дійсне число з двома знаками після коми.

Приклад

input.txt

output.txt

2.54

2.54

1000

1.00

Задача 2. «Клас»  – 20 балів.

На початку навчального року класний керівник між учнями класу поділила N зошитів та M олівців. Скільки учнів в класі, якщо відомо їх не менше  ніж K і кожний з учнів отримав однакову сумарну кількість зошитів та олівців.

Вхідні дані

Перший рядок містить натуральні числа N, M, K. Усі числа вхідного файлу не перевищують 1 000 000 000.

Вихідні дані

Єдиний рядок файлу містить знайдену кількість учнів. Якщо результатів декілька, то вивести всі через пропуск в зростаючому порядку.

Приклад

input.txt

output.txt

92

138

25

46

Задача 3. «День народження»  – 30 балів.

Учень на своє день народження роздав учням класу цукерки, в тому числі і собі. Хлопцям давав парну кількість, а дівчатам непарну кількість. Підрахувати кількість дівчат та хлопців в класі.

Вхідні дані

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

В наступних рядках кількість розданих цукерок.

Усі числа вхідного файлу не перевищують 1 000 000 000.

Вихідні дані

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

Приклад

input.txt

output.txt

5

3

1

2

4

3

3 2

Задача 4. Дорога в гімназію -40 балів.

На вимогу класного керівника учень знайшов в Інтернеті карту міста на якій він визначив і задав в декартовій системі координат координати точок на шляху від доми до гімназії,  і намалював дороги між ними (див. рис). Допоможіть учню визначити хоча б довжину найкоротшої дороги від доми до школи.

Вхідні дані:

Перший рядок вхідного файлу містить натуральне число N (1<=N<=100) – кількість точок на карті.

Наступні N рядків містять через проміжок координати Xi , Yi точок на карті. Значення координат по модулю менші 50000. Перші координати задають  – координати доми,  а останні – координати гімназії,,

Наступні  рядків задають карту намальованих доріг початкова та кінцева точка.

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

Єдиний рядок має містити дійсне число з трьома знаками після коми – дожину найкоротшої дороги.

Приклади:

input.txt

output.txt

6

150 70

160 90

100 100

170 120

120 140

80 160

1 2

2 3

2 4

3 5

4 5

5 6

152.556

 

 
Пошук в глибину PDF Печать E-mail
Добавил(а) Administrator   
02.10.13 00:00

 

 

#include "stdafx.h"

#include "fstream"

using namespace std;

ifstream cin("input.txt");

ofstream cout("output.txt");

int a[101][101],c[101],v1,v2,n,m;

void p(int k, int v)

{c[k]=v;

if (v==v2 || k>=n) {

if (v==v2)

{

//for (int i=1;i<=k;i++)cout<<c[i]<<" ";cout<<endl;

int s=0;

for (int i=1;i<k;i++)s=s+a[c[i]][c[i+1]];

//cout<<"s="<<s<<endl;

if (s<m) m=s;

}

}

else

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

if (a[v][i]>0) p(k+1,i);

}

int main()

{int i,j,t,k;

cin>>n>>m;

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

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

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

{cin>>i>>j>>t;

a[i][j]=t;a[j][i]=t;

}

cin>>v1>>v2;

/* for (i=1;i<=n;i++){

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

cout<<a[i][j]<<" ";

cout<<endl;

}

*/

//cout<<v1<<" "<<v2<<endl;

m=10000000;

p(1,v1);

if (m>=10000000)m=-1;

cout<<m<<endl;

return 0;

}

 

program Project2;

{$APPTYPE CONSOLE}

var a:array[1..100,1..100] of integer;

smin,i,j,k,l,n,s:integer;

rez,c:array [1..100]of integer;

f1,f2:text;

function f(nn,vv:integer):boolean;

var pr:boolean;

i:integer;

begin

pr:=true;

for i:=1 to nn do

if vv=c[i] then pr:=false;

f:=pr;

end;

procedure p(ni,v:integer);

var s,ii:integer;

begin

c[ni]:=v;

if(ni=n)then begin

{***** 1}

s:=0;

for ii:=1 to ni-1 do s:=s+a[c[ii],c[ii+1]];

s:=s+a[c[n],c[1]];

if s<smin then begin

for ii:=1 to ni do rez[ii]:=c[ii];

smin:=s;

end;

end

else

for ii:=1 to n do

if (a[v,ii]>0)and (f(ni,ii)) then p(ni+1,ii);

end;

begin

assign(f1,'graph.dat');reset(f1);assign(f2,'graph.sol');rewrite(f2);

write('N=');

readln(n);

for i:=1 to n do

for j:=i+1 to n do begin

a[i,j]:=random(50)+1;a[j,i]:=a[i,j];

end;

smin:=maxint;

p(1,1);

close(f1);

writeln(f2,n);

for i:=1 to n do begin

for j:=1 to n-1 do

write(f2,a[i,j]:3);

writeln(f2,a[i,n]:3);

end;

writeln(f2,'-------------------');

for i:=1 to n-1 do write(f2,rez[i],' ' );

writeln(f2,rez[n] );

writeln(f2,smin);

close(f2);

end.

 

 

 
Збирання мита PDF Печать E-mail
Добавил(а) Administrator   
26.09.12 00:00

Тестуюча система

http://ejudge.vippo.ua/cgi-bin/new-client?contest_id=1 (користувачі user3-user9, паролі 3-9)

Задача

Збирання мита (TALLAGE) -100 балів.

Король країни Аріїв завоював N міст на території сусідніх держав.

Тепер йому необхідно створити систему збирання мита з завойованих територій. Він хоче збудувати таку систему шляхів між цими містами, щоб до будь-якого міста можна було дістатися (можливо, через інші міста) зі столиці, але у воєнному стані на транспорт виділяється дуже незначна частина фінансів, тому сумарна вартість побудованих шляхів сполучення між містами має бути мінімальною.

Вхідні дані:

Перший рядок вхідного файлу містить натуральне число N (1≤N≤100) – кількість міст у країні, а також цілі числа X та Y – координати столиці.

Наступні N рядків містять через проміжок координати Xi , Yi завойованих міст.

Значення координат по модулю менші 50000.

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

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

Приклади:

 

TALLAGE.DAT

TALLAGE.SOL

6  0 0

1  1

-1  1

0  2

1 -1

-1 -1

0 -2

8.485

 
Збирання мита PDF Печать E-mail
Добавил(а) Administrator   
26.09.12 00:00

Тестуюча система

http://ejudge.vippo.ua/cgi-bin/new-client?contest_id=1 (користувачі user3-user9, паролі 3-9)

Задача

Збирання мита (TALLAGE) -100 балів.

Король країни Аріїв завоював N міст на території сусідніх держав.

Тепер йому необхідно створити систему збирання мита з завойованих територій. Він хоче збудувати таку систему шляхів між цими містами, щоб до будь-якого міста можна було дістатися (можливо, через інші міста) зі столиці, але у воєнному стані на транспорт виділяється дуже незначна частина фінансів, тому сумарна вартість побудованих шляхів сполучення між містами має бути мінімальною.

Вхідні дані:

Перший рядок вхідного файлу містить натуральне число N (1≤N≤100) – кількість міст у країні, а також цілі числа X та Y – координати столиці.

Наступні N рядків містять через проміжок координати Xi , Yi завойованих міст.

Значення координат по модулю менші 50000.

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

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

Приклади:

 

TALLAGE.DAT

TALLAGE.SOL

6  0 0

1  1

-1  1

0  2

1 -1

-1 -1

0 -2

8.485

 
Теорія графів PDF Печать E-mail
Добавил(а) Administrator   
25.09.13 00:00

Скачати матеріал

Последнее обновление 09.10.13 22:16
 
Сортування часу PDF Печать E-mail
Добавил(а) Administrator   
18.09.13 00:00

http://www.e-olimp.com/ua/problems/972

Сортування часу

Відсортуйте час згідно заданому критерію.


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

Вхідні дані

У вхідному файлі записано спочатку число N (1 ≤ N ≤ 100), а потім N моментів часу. Кожен момент часу задається 3 цілими числами - години (від 0 до 23), хвилини (від 0 до 60) і секунди (від 0 до 60).

Вихідні дані

У вихідний файл виведіть моменти часу, упорядковані в порядку неспадання (момент часу також виводиться у вигляді трьох чисел, ведучі нулі виводити не потрібно).


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

Ліміт часу: 1 секунда
Ліміт пам`яті: 64 MB
Бали за пройдений тест: 1.96078
Складність: 8% 214/232
Класифікація: Сортування та послідовності

Приклад

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

4
10 20 30
7 30 00
23 59 59
13 30 30

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

7 30 0
10 20 30
13 30 30
23 59 59
 
Сортування PDF Печать E-mail
Добавил(а) Administrator   
18.09.13 00:00

http://www.e-olimp.com/ua/problems/2321


Сортування

Відсортуйте масив цілих чисел у порядку неспадання.


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

Вхідні дані

Перший рядок містить ціле число n (1 ≤ n ≤ 1000), другий рядок -  n цілих чисел, які за модулем не перевищують 2·109.

Вихідні дані

Вивести усі n чисел у порядку неспадання.


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

Ліміт часу: 1 секунда
Ліміт пам`яті: 64 MB
Бали за пройдений тест: 3.22581
Складність: 8% 99/108
Класифікація: Сортування та послідовності

Приклад

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

5
9 2 7 1 2

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

1 2 2 7 9

 

 

Последнее обновление 09.10.13 22:05
 
Повторення. Базові структури PDF Печать E-mail
Добавил(а) Administrator   
04.09.13 00:00

Приклад 1

Знайти максимальний елемент з трьох чисел.

Приклад 2

Відсортувати три числа в порядку зростання

Тести для перевірки: 1,2,3

1,3,2

2,1,3

2,3,1

3,2,1

3,1,2

Приклад 3

Числовий ряд чисел Фібоначі.

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

Спосіб 1

Кожне наступне знаходити як суму двох попередніх.

1 1 2 3 5 8 ...

k1 перше число

k2 друге число

k3:=k1+k2;

k1:=k2;

k2:=k3;

Кожне число Фібоначі знаходять за формулою:

N

Число Фібоначі (F)

10

20

30

40

50

60

70

80

90

100

150

200

500

1000

Приклад 4

Вивести ряд простих чисел до N.

Порівняти час роботи двох алгоритмів

Var time:int64;

begin

time:=GetTickCount;

// программа

time:=GetTickCount-time;

writeln((time/1000):0:5);

readln;

end.

N

Алгоритм 1

(пошук простих чисел за означенням)

Алгоритм 2

(пошук простих чисел за решетом Ерастофена)

10

100

1000

10000

100000

1000000

10000000

Приклад 5

Лічилка. За заданими N та K вивести порядковий номер елемента який залишиться.

Приклад 6

Заповнити прямокутний масив NxN по спіралі.

1

2

3

8

9

4

7

6

5

 

 


Страница 14 из 27

Статистика

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

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