227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
1

Разъясните условие задачи

30.01.2016, 21:17. Показов 685. Ответов 18
Метки нет (Все метки)

Есть задача, правда на англицком, переводить не стану что бы не напартачить.


A call center has N operators who receive calls and record them in
text files (one file per operator, one line per record). The format of
the file records is: numeric ID, space, encoded message details, end
of line. The call ID is unique and monotonically growing, i.e. if an
operator receives a call and gets ID1, other operator, when receives
the next call, will get ID2 > ID1. At the end of the day all operator
files are copied to one host and a program is executed to merge these
files into one file ordering the records by their ID.

Write the program (preferably C or C++) that performs this merging,
taking into account that the number of input files and their size may
be very large and program should perform as fast as possible.


Не могу доехать в само условие. К примеру у меня 3 оператора, может ли случиться такая последовательность
C++
1
2
3
4
5
6
Array:
[
 operator1 => 1, 2, 7, 8
 operator2 => 3, 6, 9, 11
 operator3 => 4, 5 10, 12
]
или только такая

C++
1
2
3
4
5
6
Array:
[
 operator1 => 1, 7, 16, 21
 operator2 => 3, 10, 19, 22
 operator3 => 4, 15 20, 25
]
Буду крайне признателен за малейшую трезвую подсказку
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.01.2016, 21:17
Ответы с готовыми решениями:

Условие задачи
Определить корень уравнения x*1.1=e-x( икс умножить на 1.1=е-х) при x0=0.55 с точностью 10-4( 10 в...

Задачи на условие...
2. Определить, имеется ли среди чисел a, b, c хотя бы одна пара взаимно противоположных чисел. ...

Условие задачи
Здравствуйте уважаемые программисты. Вот задали задачу, а условия понять не могу. Задача: Даны...

условие задачи
Ввести массив вещественных чисел. Найти и вывести номер элемента, для которого сумма разностей...

18
1389 / 1019 / 323
Регистрация: 28.07.2012
Сообщений: 2,805
30.01.2016, 21:54 2
Цитата Сообщение от anti-k Посмотреть сообщение
Не могу доехать в само условие.
У каждого оператора может получиться произвольная возрастающая последовательность чисел, которые не встречаются ни у одного другого оператора.
Цитата Сообщение от anti-k Посмотреть сообщение
может ли случиться такая последовательность
Может.
0
Dimension
593 / 461 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
30.01.2016, 22:36 3
а что найти то надо ,входные/выходные данные есть?откуда задача вообще ,мб сайт есть?
0
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
30.01.2016, 22:56  [ТС] 4
Dimension,
Это все что есть, это тестовое задание на собеседование. (Заметьте решаю сам , спрашиваю только по сути)
0
Dimension
593 / 461 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
30.01.2016, 23:04 5
насколько я понял нужно отсортировать по ID как можно быстрее
0
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
30.01.2016, 23:17  [ТС] 6
Dimension,
Цитата Сообщение от Dimension Посмотреть сообщение
насколько я понял нужно отсортировать по ID как можно быстрее
я тоже так думаю, если не в курсе английского, я могу перевести но за качество результата не отвечаю , в общем если есть чего посоветовать( а у вас, я знаю, точно есть)кроме "пойти в армию" буду категорически признателен(кроме готового кода, пишу сам).

Добавлено через 3 минуты
Dimension, К стати не уверен что нужна сама сортировка. Пока делаю так: считываю минимальный ID,
затем сливаю в буфер.
0
31 / 34 / 18
Регистрация: 30.09.2011
Сообщений: 202
30.01.2016, 23:42 7
если я правильно понял у тебя N файлов от твоих операторов, сливаешь всю информацию в буфер, сортируешь и делаешь новый файл с результатом сортировки
0
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
30.01.2016, 23:48  [ТС] 8
Lawliet1, А если входных данных много, сколько будет сортировать Гиг или два ?
0
31 / 34 / 18
Регистрация: 30.09.2011
Сообщений: 202
31.01.2016, 00:02 9
отсортировать не самая большая беда (хоть я и думаю что это основная цель этого задания)

я б допустим впал в ступор по другому вопросу: как прочитать N файлов... я просто не знаю)
допустим они все в одной папке, как их по очереди считывать.. какая функция???
0
Dimension
593 / 461 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
31.01.2016, 00:06 10
а они уже не отсортированы по условию ?может задача как склеить это все быстро ,смотря что еще в их понимание very large
0
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
31.01.2016, 00:19  [ТС] 11
Цитата Сообщение от Dimension Посмотреть сообщение
задача как склеить это все быстро
Тоже так думаю. Не силен в алгоритмах, но какая сортировка застрахует от О(n2)??(кака бэ от экспоненты)

Добавлено через 1 минуту
Цитата Сообщение от Lawliet1 Посмотреть сообщение
как прочитать N файлов...
по наличию дескрипторов в папке
0
31 / 34 / 18
Регистрация: 30.09.2011
Сообщений: 202
31.01.2016, 00:24 12
Цитата Сообщение от anti-k Посмотреть сообщение
по наличию дескрипторов в папке
а можно кусок кода по этому поводу пожалуйста?)
это WinApi?
0
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
31.01.2016, 09:14  [ТС] 13
Lawliet1,
Почему сразу WinApi?
Вот, писал когда то, при чем не без помощи cyberforum, показывает все содержимое с корня до папки
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
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<direct.h>
#include<cstring>
#include<io.h>
#define mode 0x10
using namespace std;
 
void check(char*dir)
{
    struct _finddata_t f;
    char*add = "\\*.*";
    intptr_t disc=0;
    char dirr[1000] = { 0 };
    sprintf(dirr, "%s%s", dir, "\\*.*");
    
    
    if ((disc = _findfirst(dirr, &f)) == -1L)
    {
        //cout << "can't open dir" << endl;
        return;
    }
    else
    {
        do
        {
            //cout << f.name << " " << f.size << endl;
            if(strcmp(f.name,".")!=0&&strcmp(f.name,"..")!=0)
                cout << f.name << " " << f.size << endl;
            if ((f.attrib&mode) != 0)
            {
                
                if (strcmp(f.name, ".") != 0 && strcmp(f.name, "..") != 0)
                    
                sprintf(dirr, "%s\\%s", dir, f.name);   
                //cout << dirr << "!!!!!!!" << endl;
                
                //cout << f.name << " " << f.size << endl;
            
            }   
            check(dirr);
            
        } while (_findnext(disc, &f) == 0);
        
        //check(dirr);
    }
    _findclose(disc);
}
int main()
{
    
    char*ch = new char[BUFSIZ]();
    strcpy(ch,"C:\\Users\\hp\\Documents\\Visual Studio 2015\\Projects");
    check(ch);
    return 0;
}
1
Dimension
593 / 461 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
31.01.2016, 10:07 14
Цитата Сообщение от anti-k Посмотреть сообщение
но какая сортировка застрахует от О(n2)??
merge , его можно распараллелить и получить n даже
smooth , худший nlogn ,если даные частично сортированы то за n может
1
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
01.02.2016, 15:38  [ТС] 15
Вот пример как решил я, готовый код выложу когда все закончу
Миниатюры
Разъясните условие задачи  
0
Dimension
593 / 461 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
01.02.2016, 15:48 16
и за сколько работает ?не понятна ваша идея с выбором младшего
0
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
01.02.2016, 15:52  [ТС] 17
Dimension,
Цитата Сообщение от Dimension Посмотреть сообщение
и за сколько работает
сейчас допишу, буду считать.
0
Байт
02.02.2016, 01:15
  #18

Не по теме:

Цитата Сообщение от anti-k Посмотреть сообщение
правда на англицком
Увы! У меня на это - идеосинкразия. Есть такое явление. И виноват не язык англицкий, а моя дура-учительница 5-го класса. Пусть ей земля будет пухом, но пусть и в гробу, засранка, поворочается!

0
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 1
18.03.2016, 12:17 19
anti-k, Привет! Даш код посмотреть?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2016, 12:17
Помогаю со студенческими работами здесь

условие задачи
здравствуйте.дана следующая задача-Дан массив размера N. Определить количество его промежутков...

Непонятное условие задачи
Всем привет! Такая проблема, нужно исправить ошибки в готовом коде, такое задание. Ниже дал условие...

Объясните условие задачи
Опишите функцию деления двух чисел с плавающей запятой, обработайте ошибку переполнения снизу...

Непонятное условие задачи
Создать класс Array --- одномерный массив целых чисел c задаваемыми границами индексов c...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru