Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
10 / 10 / 5
Регистрация: 22.09.2009
Сообщений: 60
1

Олимпиада (носки и шахматы)

16.02.2010, 12:34. Показов 2363. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Два интересных, но сложных для меня задания.

1. В одной военной части было принято революционное решение перейти от портянок к носкам. По такому случаю прапорщику Недалекому было поручено закупить n пар носков. Однако предложенная прапорщиком смета не удовлетворила начальство, и прапорщику было предложено очень-очень быстро переделать ее так, чтобы затраты были минимально возможными.
Помогите бедному прапорщику составить такую смету.
Изучение рынка показало, что разные поставщики продают носки разными пачками и по разным ценам. Пачка, содержащая ai пар носков продается за bi рублей.

Формат входных данных
В первой строке входного файла содержится числа n и m (1 <= n <= 10000, 1 <= m <= 100).
Далее идут m пар чисел ai, bi (1 <= ai <= 10000, 1 <= bi <= 10000).

Формат выходных данных
Выведите в выходной файл минимальную сумму денег, которую нужно потратить на покупку n пар носок.

2. Вася начал заниматься шахматами, и теперь он изучает различные окончания. Оказалось, что компьютер очень удобно использовать для анализа позиций. Вася просит вас написать программу, которая сможет определить, что черный король находится под шахом.
Для начала Васе подойдет программа, которая анализирует игровую ситуацию с тем предположением, что на доске находятся три фигуры - белые король и ферзь и черный король.
Черный король находится под шахом, если белый ферзь может за один ход попасть на занимаемую им клетку.
Шахматный ферзь может перемещаться по вертикали, горизонтали или диагонали, но, в отличие от коня, не может перепрыгивать через другие фигуры.

Формат входных данных
В единственной строке входного файла записаны обозначения трех клеток шахматной доски, разделенные пробелами: положения белого короля, белого ферзя и черного короля соответственно. При этом гарантируется, что черный и белый короли не находятся на соседних клетках.

Формат выходных данных
Выведите в выходной файл одно слово: 'YES', если черный король находится под шахом и 'NO',
если шаха нет.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2010, 12:34
Ответы с готовыми решениями:

Носки
Задание с одного сайта по дистанционному обучению. Помогите разобраться, что именно тут нужно...

Нужно ли под кроссовки обувать носки?
Всем доброго времени суток. Так получилось, что я остановил свой выбор на кроссовках и джинсах....

как заставить мужчину убирать грязные носки?
Встречный вопрос: как заставить мужчину убирать грязные носки? :D

Расчитать дату окончания срока носки одежды
1 Нужна формула которая бы рассчитывала дату окончания срока носки 2 При условии что у...

4
163 / 140 / 23
Регистрация: 28.12.2009
Сообщений: 365
17.02.2010, 00:57 2
в первой задаче что такое m?
0
7 / 6 / 5
Регистрация: 08.12.2009
Сообщений: 105
17.02.2010, 15:56 3
Biggemot, видимо кол-во пар чисел bi и ai
0
163 / 140 / 23
Регистрация: 28.12.2009
Сообщений: 365
17.02.2010, 15:58 4
Цитата Сообщение от STL1te Посмотреть сообщение
видимо кол-во пар чисел bi и ai
ты прав. не увидел сперва
0
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 3
26.01.2014, 15:19 5
Делал как раз задачу про носки сейчас, на C++ правда. Выложу код, мало ли, пригодится кому-нибудь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
 
using namespace std;
 
int main()
{
  int m, n, min;
  cout << "Enter pair's number: " << endl;
  cin >> n;
  if (n<1 || n>10000)
    {
      cout << "You enter wrong number";
      return 0;
    }
  cout << "Enter provider's' number: " << endl;
  cin >> m;
  if (m<1 || m>10000)
    {
      cout << "You enter wrong number";
      return 0;
    }
  int mas[m][m];
  for (int i = 0;i<=m-1;i++)
    {
      cout << "Enter pair's number at " << i+1 << " firm:" << endl;
      cin >> mas[i][0];
      if (mas[i][0]<1 || mas[i][0]>10000)
        {
          cout << "You write wrong number";
          return 0;
        }
      cout << "Enter price at " << i+1 << " firm: " << endl;
      cin >> mas[i][1];
      if (mas[i][1]<1 || mas[i][1]>10000)
        {
          cout << "You write wrong number";
          return 0;
        }
    }
  min = mas[0][0];
  for (int i = 0 ; i<=m-1 ;i++)
    {
          if ( (n % mas[i][0]) != 0 )
            {
            if ( ( (n / mas[i][0] + 1) * mas[i][1] )< min )
              {
                min = ( (n / mas[i][0] + 1) * mas[i][1] );
              }
 
         else {
                if ( ( (n / mas[i][0]) * mas[i][1])< min )
                  {
                    min = ( (n / mas[i][0]) * mas[i][1]);
                  }
              }
     }
}
 cout << "Minimal amount of money: " << min;
  return 0;
}
0
26.01.2014, 15:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.01.2014, 15:19
Помогаю со студенческими работами здесь

Выделить цветом окончание срока носки спецодежды
Прошу Вашей помощи, необходимо выделить цветом окончание срока носки спец одежды, но сроки на...

Определить максимальное количество дней, в которые Даниил сможет носить разноцветные носки
Добрый день. Нужна помощь в решении задачи. У Даниила есть a красных и b зеленых носков. Даниил...

олимпиада
помогите решить задачки я а то их смымл не понял задание А. хомяки У вас есть n хомячков и k...

Олимпиада
Я конечно понимаю тема смешная..но я готовлюсь к олимпиаде и хочу попросить помощи...Подскажите как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru