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

Принадлежность точки отрезку - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Деление по модулю http://www.cyberforum.ru/cpp-beginners/thread1163735.html
Здравствуйте. Пишу функцию деления по модулю: int ring(int num, int max) { return num - (max%num)*(num/max); } Для (12, 12) возвращает 12, для (24, 12) и т.д. - 0. При чем функция fmod(12, 12) возвращает 0. Мне же нужно, что бы возвращалось 12 во всех случаях. Как мне модифицировать функцию? Спасибо!
C++ Ввод/вывод элементов квадратной матрицы, вычисление индексов максимального элемента Помогите написать программу для ввода элементов квадратной матрицы, вывода этого массива на экран, вычисления индексов максимального элемента массива. http://www.cyberforum.ru/cpp-beginners/thread1163733.html
Отформатировать текст и вывести его в файл C++
Помогите пожалуйста , в текстовом файле задан текст - слова, разделенные пробелами. Текст содержит форматирующие символы «&» и «$», означающие соответственно конец абзаца и конец главы. Вывести в выходной текстовый файл данный текст, отформатировав его следующим образом. Длина каждой строки отформатированного текста не превышает k (k вводится с клавиатуры). Каждый абзац печатается с...
Из данных двоичного файла сформировать два массива C++
Создать двоичный файл, куда записать n вещественных чисел. Из компонентов исходного файла сформировать массивы положительных и отрицательных простых чисел. Вычислить количество нулевых компонентов файла. Помогите пожалуйста, у меня почему то выводит ошибку(((
C++ Удалить из строки все пробелы, расположенные перед знаком препинания http://www.cyberforum.ru/cpp-beginners/thread1163686.html
Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются. Удалить из строки все пробелы, расположенные перед знаком препинания.
C++ Если в тексте есть слова с нечетным количеством букв, то удвоить среднюю букву таких слов Если в тексте есть слова с нечетным количеством букв, то удвоить среднюю букву таких слов. С использованием указателей. подробнее

Показать сообщение отдельно
AlekseyL
0 / 0 / 0
Регистрация: 02.05.2014
Сообщений: 3
02.05.2014, 00:14     Принадлежность точки отрезку
Добрый день, уважаемые форумчане. Помогите пожалуйста с задачей. В первой строке задано два целых числа n и m (1≤n≤50000, 1≤m≤50000) — количество отрезков и точек на прямой, соответственно. Следующие n строк ввода содержат по два целых числа ai и bi (ai≤bi) — координаты концов отрезков. Последняя строка содержит m целых чисел — координаты точек. Все координаты не превышают 10^5 по модулю. Точка считается принадлежащей отрезку, если она находится внутри него или на границе. Для каждой точки в порядке появления во вводе выведите, скольким отрезкам она принадлежит.

Я читаю начала и концы отрезков в разные массивы, сортирую массивы и ищу в каждом количество элементов меньше заданного. Правильного ответа вроде добился, но по времени не проходит. Подозреваю что виновны 13 и 14 строки, но как переделать не знаю...
C++ (Qt)
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
#include <iostream>
using namespace std;
int binary_search(int x, int l ,int r, int*h){
    int k, mid;
    k=0;
     while(r - l > 1){
         mid = (l + r) / 2;
         if(h[mid]<=x){
             k=k-l+mid;
             l = mid;}
         else{
             r = mid;}}
           if(h[mid-1]<=x){
            k++;}
             return k;}
 
void quickSort(int l, int r, int*s)
{
     int x = s[l + (r - l) / 2];
     int i = l;
     int j = r;
     while(i <= j)
     {
         while(s[i] < x) i++;
         while(s[j] > x) j--;
         if(i <= j)
         {
             swap(s[i], s[j]);
             i++;
             j--;
         }
     }
     if (i<r)
                 quickSort(i, r, s);
     
     if (l<j)    
         quickSort(l, j, s);    
}
int main(){
    
     int n, m, k, p, i;
     cin >> n >> m;
     int a[n], b[n], c[m];
     for(i = 0; i < n; i++){
            cin>>a[i]>>b[i];}
            
     quickSort(0, n-1, a);
     quickSort(0, n-1, b);
 
     for(i = 0; i < m; i++){
        cin >> c[i];
        cout<< binary_search(c[i], 0 , n, a)-binary_search(c[i], 0 , n, b)<<" ";
     }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru