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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
yutr777
5 / 5 / 0
Регистрация: 07.04.2013
Сообщений: 85
#1

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

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

Как-то раз Поликарп захотел узнать, кто из секретарей разговаривает по 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;
}
не пашет((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 00:40     Так, норм задачка, гляньте, скажите что да как
Посмотрите здесь:

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

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

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

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

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

С++ задача, надо зациклить, скажите что не так, ошибку выдает в switch, про точку с запятой знаю их вроде не н - C++
{ do { char c; system(&quot;echo Есть три задачи&quot;); system(&quot;echo 1-Следование&quot;); system(&quot;echo 2-Ветвление&quot;); system(&quot;echo...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
adm_loro
Заблокирован
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;
}
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 831
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;
}
adm_loro
Заблокирован
13.04.2013, 02:54     Так, норм задачка, гляньте, скажите что да как #4
[quote=Olivеr;4405714]cout << "Секретарь №" << i + 1 << ":" << endl;[/quote

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

Добавлено через 3 минуты
вот скажи, чем принципиально отличается твое решение от моего? это я к тому, что нахуя?
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 831
13.04.2013, 02:58     Так, норм задачка, гляньте, скажите что да как #5
От того, что страницы сами не обновляются и нет предупреждения о новых ответах при отправке сообщения.
Я начал писать, когда тут твоего кода еще не было.
adm_loro
Заблокирован
13.04.2013, 03:00     Так, норм задачка, гляньте, скажите что да как #6
Olivеr, прости друг, это я с горяча
salam
162 / 143 / 12
Регистрация: 10.07.2012
Сообщений: 725
13.04.2013, 05:44     Так, норм задачка, гляньте, скажите что да как #7
запрещено выкладывать задачи и идеи решения до окончания соревнования...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2013, 12:57     Так, норм задачка, гляньте, скажите что да как
Еще ссылки по теме:

код с++. где что поставить что бы прога норм работала? - C++
#include &lt;iostream&gt; #include &lt;string&gt; int main(int argc, char* argv) { struct { const char chr; ...

Скажите пожалуйста как сделать теперь что бы треугольник который справа зарисовваный, оказался только слева зарисованным - C++
Скажите пожалуйста как сделать теперь что бы треугольник который справа зарисовваный, оказался только слева зарисованным!) #include...

задачка никак не соображу что да как тут делать - C++
Решить методом простой итерации уравнение вида х=Ф(Х). Очевидное приближение корня находится по формуле Xn=Ф(Xn-1) (на всякий случай n-1...

вот так задачка((( - C++
ввели количество человек к примеру ( 8 человек ); name| last name| year| start number| it number| previous result ...


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

Или воспользуйтесь поиском по форуму:
yutr777
5 / 5 / 0
Регистрация: 07.04.2013
Сообщений: 85
13.04.2013, 12:57  [ТС]     Так, норм задачка, гляньте, скажите что да как #8
Цитата Сообщение от salam Посмотреть сообщение
запрещено выкладывать задачи и идеи решения до окончания соревнования...
я знаю....я сдал сам давно на FPC
Yandex
Объявления
13.04.2013, 12:57     Так, норм задачка, гляньте, скажите что да как
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru