Форум программистов, компьютерный форум CyberForum.ru

Определить количество пораженных мишеней - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Temirlan90
 Аватар для Temirlan90
131 / 131 / 8
Регистрация: 30.09.2010
Сообщений: 333
12.05.2011, 17:48     Определить количество пораженных мишеней #1
Кликните здесь для просмотра всего текста
Биатлон
(Время: 1 сек. Память: 16 Мб Сложность: 24%)

На Зимних Олимпийских Играх традиционно проводятся соревнования по биатлону. Как известно, этот вид спорта содержит лыжные гонки и стрельбу по мишеням из винтовки. На каждом огневом рубеже расположены 5 мишеней. Каждая из них имеет форму круга радиусом 10 см, а расстояния между центрами соседних мишеней одинаковы и равны 25 см. Центры мишеней при этом расположены на одной горизонтали.

Введем прямоугольную систему координат так, что начало координат расположено в центре самой левой мишени, ось Ox направлена вправо, а ось Oy - вверх. Таким образом, центры мишеней имеют координаты (0, 0), (25, 0), (50, 0), (75, 0) и (100, 0).

Для информационного обеспечения проведения соревнований было решено разработать систему подсчета количества пораженных мишеней. Эта система по точкам, в которые попали пули после выстрелов спортсмена, должна определять количество пораженных мишеней. Мишень считается пораженной, если в нее попала хотя бы одна пуля (при этом, разумеется, если в мишень попали две или больше пуль, то попадание считается только один раз).

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

Входной файл INPUT.TXT содержит ровно пять строк: i-ая из них содержит два целых числа xi и yi - координаты точки, в которую попала пуля после i-ого выстрела спортсмена. Все числа во входном файле не превосходят 1000 по модулю.
Выходные данные

В выходной файл OUTPUT.TXT выведите единственное число – число пораженных мишеней.
INPUT.TXT
0 0
25 0
50 0
75 0
100 0
OUTPUT.TXT
5

INPUT.TXT
0 0
0 0
0 0
75 0
100 0
OUTPUT.TXT
3

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
#include <iostream>
using namespace std;
int main() {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    int x, y, count = 0, t1, t2, t3, t4, t5;
    t1 = t2 = t3 = t4 = t5 = 0;
    for(int i = 0; i < 5; ++i) {
        cin >> x >> y;
        if(abs(x) + abs(y) >= 0 && abs(x) + abs(y) <= 10 && t1 != 1) {
            t1 = 1;
            ++count;
        }
        else if(abs(x) + abs(y) >= 15 && abs(x) + abs(y) <= 35 && t2 != 1) {
            t2 = 1;
            ++count;
        }
        else if(abs(x) + abs(y) >= 40 && abs(x) + abs(y) <= 60 && t3 != 1) {
            t3 = 1;
            ++count;
        }
        else if(abs(x) + abs(y) >= 65 && abs(x) + abs(y) <= 85 && t4 != 1) {
            t4 = 1;
            ++count;
        }
        else if(abs(x) + abs(y) >= 90 && abs(x) + abs(y) <= 110 && t5 != 1) {
            t5 = 1;
            ++count;
        }
    }
    cout << count;  
    return 0;
}
7-й тест проваливает..., дайте контр-пример.

Добавлено через 1 час 42 минуты
контр-пример
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2011, 17:48     Определить количество пораженных мишеней
Посмотрите здесь:

В массиве А(n) (n<=7) хотя бы один нуль. Определить количество положительных и количество отрицательных элементов к первому нулю. C++
C++ Определить количество выигрышей, количество проигрышей и количество ничьих данной команды
В массиве записаны результаты N игр футбольной команды. Определить количество выигрышей, количество проигрышей и количество ничьих данной команды. C++
Определить количество положительных и количество отрицательных элементов массива C++
C++ Определить количество положительных и количество отрицательных элементов до первого нуля. Найти ошибку в коде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fulcrum_013
 Аватар для Fulcrum_013
393 / 566 / 60
Регистрация: 14.12.2014
Сообщений: 4,769
Завершенные тесты: 2
06.07.2015, 13:40     Определить количество пораженных мишеней #21
Конкретно за краем: 108 байт, для непосвященных смертельно:
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
main()
{   
    int c=0,j=-1, x,y;  
    for(;j++<5;std::cin >> x >> y,x-=j*25,c+=x*x+y*y<101);
    std::cout << c;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Melvil
 Аватар для Melvil
47 / 46 / 13
Регистрация: 20.05.2015
Сообщений: 246
06.07.2015, 15:04     Определить количество пораженных мишеней #22
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Конкретно за краем: 108 байт, для непосвященных смертельно:
Я вот не очень понял к чему умножение на 25 и изменение цикла for ?

Добавлено через 10 минут
Visual Studio ругается на этот код, хотя проверки он проходит, можете пояснить?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2015, 15:34     Определить количество пораженных мишеней
Еще ссылки по теме:

Определить количество слов в заданном тексте и количество символов в каждом слове C++
Определить количество лет, в которые количество осадков превышало среднегодовое C++
Пользователь вводит строку. Определить количество букв (рус eng), количество цифр и количество остальных C++

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

Или воспользуйтесь поиском по форуму:
Fulcrum_013
 Аватар для Fulcrum_013
393 / 566 / 60
Регистрация: 14.12.2014
Сообщений: 4,769
Завершенные тесты: 2
06.07.2015, 15:34     Определить количество пораженных мишеней #23
Цитата Сообщение от Melvil Посмотреть сообщение
Visual Studio ругается на этот код, хотя проверки он проходит, можете пояснить?
студия будет ругаться. как минимум потребует void перед main. а GNU C++ грызет тока так. она студия вообще дурная. к примеру на scanf ругается. У нее вообще новый вид ошибок появился - unsafe error
Yandex
Объявления
06.07.2015, 15:34     Определить количество пораженных мишеней
Ответ Создать тему
Опции темы

Текущее время: 21:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru