Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
8 / 8 / 3
Регистрация: 07.04.2013
Сообщений: 85
1

Так, норм задачка, гляньте, скажите что да как

13.04.2013, 00:40. Показов 783. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как-то раз Поликарп захотел узнать, кто из секретарей разговаривает по Spyke, а кто — нет. Он выписал для каждого секретаря номер сессии его разговора, или 0, если этот секретарь сейчас не разговаривает по Spyke.

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

Обратите внимание, секретари могут разговаривать по Spyke не только друг с другом — возможны разговоры с внешними собеседниками. Также не разрешены конференции Spyke — то есть в каждом разговоре должны участвовать ровно два собеседника.

Входные данные
В первой строке записано целое число n (1 ≤ n ≤ 103) — количество секретарей в корпорации Поликарпа. В следующей строке записаны n целых чисел через пробел: id1, id2, ..., idn (0 ≤ idi ≤ 109). Число idi равно номеру сессии разговора секретаря номер i, если он разговаривает в данный момент по Spyke, или равно нулю, в противном случае.

Считайте, что секретари пронумерованы от 1 до n некоторым образом.

Выходные данные
Выведите единственное целое число — количество пар секретарей, которые ведут разговор, или -1, если в данные Поликарпа закралась ошибка, и описанная ситуация никак не могла произойти.

Примеры тестов
входные данные
6
0 1 7 1 7 10
выходные данные
2
входные данные
3
1 1 1
выходные данные
-1
входные данные
1
0
выходные данные
0
Примечание
В первом тестовом примере есть два телефонных разговора между секретарями: секретарь номер 2 и секретарь номер 4, секретарь номер 3 и секретарь номер 5.

Во втором тестовом примере описанная ситуация невозможна, так как не разрешены конференции.

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
#include <iostream>
#include <algorithm>
 
typedef long long ll;
 
using namespace std;
 
int main()
{
ll ans=0,n,dl=1,x;
cin >> n;
ll a[10000]={0};
for (int i=0;i<n;i++)
{
    cin >> a[i];
}
sort(a,a+n);
for (int i=1;i<n;i++)
{
    if (a[i]==a[i-1]){dl++;continue;}
    if (a[i]!=a[i-1]){
                      if (dl==2 && a[i-1]!=0){ans++;}
                      if (dl>2 && a[i-1]!=0) {ans=-1;break;} 
                      dl=1;
                      }
}
if (dl==2 && a[n-1]!=0){ans++;}
if (dl>2) {ans=-1;} 
cout << ans;   
return 0;
}
не пашет((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2013, 00:40
Ответы с готовыми решениями:

Народ гляньте код и подскажите что не так.
Условие: Написать функцию, которая округляет любое вещественное число до определённого количества...

Ребят, уже запарился, гляньте, что не так!? конструктор копирования и оператор присваивания
#include &lt;iostream&gt; using namespace std; struct SNode { SNode*next; int val; ...

скажите пожалуйста что не так?
пишет ошибку &quot;Необработанное исключение в &quot;0x0f3fde8f (msvcr100d.dll)&quot; в &quot;lab2.exe&quot;: 0xC0000005:...

Скажите, что не так делаю!
Пишет, что ошибка в строчке int T =... #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace...

7
Заблокирован
13.04.2013, 02:35 2
так сказать в почти в лоб
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <map>
 
using namespace std;
 
struct cmp 
{
    int cnt;
    cmp():cnt(0){}
    bool operator()(pair<int, int> p) 
    {
        return p.second == 2;
    }
};
 
int main()
{
    int n;
    cin>>n;
    map<int, int> m;
    for(int i = 0; i < n; ++i)
    {
        int t;
        cin >> t;
        --t;
        if(t < 0) continue;
        ++m[t];
        if(m[t] > 2)
        {
            cout << -1 << std::endl;
            system("pause");
            return 0;
        }
    }
    int r = count_if(m.begin(), m.end(), cmp());
    cout <<  r << std::endl;
    system("pause");
    return 0;
}
0
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
13.04.2013, 02:47 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
34
#include <iostream>
#include <map>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "");
    cout << "Секретарей: ";
    unsigned secretaryCount;
    cin >> secretaryCount;
 
    map<unsigned, unsigned> skypeCalls;
 
    unsigned callerID;
    for (size_t i = 0; i!=secretaryCount; i++) {
        cout << "Секретарь №" << i + 1 << ": ";
        cin >> callerID;
        skypeCalls[callerID]++;
    }
 
    unsigned pairsCount(0);
 
    for (map<unsigned, unsigned>::const_iterator it=skypeCalls.begin(); it!=skypeCalls.end(); it++) {
        if (it->second > 2 && it->first) {
            cout << -1;
            return -1;
        } else if (it->second == 2) {
        ++pairsCount;
        }
    }
    cout << pairsCount;
    return 0;
}
0
Заблокирован
13.04.2013, 02:54 4
[quote=Olivеr;4405714]cout << "Секретарь №" << i + 1 << ":" << endl;[/quote

см. что требуется вывести
Цитата Сообщение от yutr777 Посмотреть сообщение
Выведите единственное целое число
Добавлено через 1 минуту
ты еще гуй прикрути

Добавлено через 3 минуты
вот скажи, чем принципиально отличается твое решение от моего? это я к тому, что нахуя?
0
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
13.04.2013, 02:58 5
От того, что страницы сами не обновляются и нет предупреждения о новых ответах при отправке сообщения.
Я начал писать, когда тут твоего кода еще не было.
0
Заблокирован
13.04.2013, 03:00 6
Olivеr, прости друг, это я с горяча
0
194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800
13.04.2013, 05:44 7
запрещено выкладывать задачи и идеи решения до окончания соревнования...
0
8 / 8 / 3
Регистрация: 07.04.2013
Сообщений: 85
13.04.2013, 12:57  [ТС] 8
Цитата Сообщение от salam Посмотреть сообщение
запрещено выкладывать задачи и идеи решения до окончания соревнования...
я знаю....я сдал сам давно на FPC
0
13.04.2013, 12:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2013, 12:57
Помогаю со студенческими работами здесь

скажите что нет так
В двумерном массиве хранятся данные об оценках N студентов по М предметам. Номер строки...

Не работает код, скажите что не так)
вот код немогу понять почему выдает ошыбки. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Скажите пожалуйста, что не так с программой
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;cstring&gt; using namespace std; struct tovar { ...

Ребят Незнаю что делать при запуске на компилирование выдает ошибку.Кто понимает что не так скажите а если не затруднит исправьте ошибку
Разговаривал с двумя преподами говорят что проект не правильно создавал,хотя все правильно из...


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

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