На форумі обговорюються лише питання, пов'язані з олімпіадою
Ви не зайшли.
Задача, на мій погляд дуже проста: пошук найбільшого елемента (та його індекса) в числовому масиві, хоча завуальована до неможливості.
#include <iostream>
using namespace std;
int main()
{
 int N;
    cin >> N;
    int *M = new int [N];
        for(int i=0; i<N; i++)
            cin >> M[i];
int max=M[0], index=0;
for(int i=0; i<N; i++)
    if (M[i]>max)
    {
        max=M[i];
        index=i;
    }
    cout << max+1 << " " << index+1;
    return 0;
}Відредаговано LVV (2015-11-12 16:35:49)
Поза форумом
skmg написав:
викинути масив та шукати максимум безпосередньо у вхідному потоці?
Але і в такому випадку маємо лише 19 балів
Журі вже виправилося, майже в усіх 20 балів. 
 (змінив своє попереднє повідомлення)
Хоча навіть один бал вартий того, щоб викинути масив.
Відредаговано LVV (2015-11-12 16:38:50)
Поза форумом
цікаво, повторна перевірка вручну натестах дає "Набрано баллов: 20 из 20."
А в результатах 19.
Масви ніякі не використовувалися.. поточне читання в змінну.. і перевірка  на максимум((
Поза форумом
#include <iostream>
using namespace std;
int main(void)
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    size_t n, ans(0), ans_idx, tmp;
    cin >> n;
    for(size_t i = 0; i < n; ++i)
    {
        cin >> tmp;
        if(tmp > ans)
            ans = tmp, ans_idx = i;
    }
    cout << ans+1 << ' ' << ans_idx+1 << '\n';
    return 0;
}
Чому цей розв'язок дає на одному тесті неправильну відповідь?
Поза форумом
Потому что не учтен случай, когда ни одного кабеля не проложено. Надо ans=-1 инициализировать.
Відредаговано andervish (2015-11-13 01:42:32)
Поза форумом
#include <iostream>
using namespace std;
int main()
{
    int n;
    cin >> n;
    int *a = new int[n];
    cin >> a[0];
    int max = a[0];
    for (int i = 1; i < n; i++){
        cin >> a[i];
        if (max < a[i]){
            max = a[i];
        }
    }
    for (int i = 0; i < n; i++){
        if (a[i] = max){
            cout << max + 1 << " " << i + 1 << endl;
            return 0;
        }
    }
    return 0;
}
Що тут є неправильного?
Поза форумом
Mobivlad написав:
Що тут є неправильного?
1) Основна помилка в умові, яка в другому циклі:
 if (a[i] = max){на С++ для перевірки умови треба писати ==. А ти просто присвоїв першому ж елементу масиву значення max.
В тебе проходили тільки ті тести, де правильною відповіддю була школа №1
2) Це не вплинуло на правильність роботи програми, але разом з тим:
using namespace std;
В цьому просторі імен оголошений макрос max, який вертає максимум із двох змінних. Хоч компілятор і зрозумів, що ти маєш на увазі локальну змінну, а не макрос із std, але краще змінні так не називати.
Більшість IDE підсвічують слово max не як змінну, а як зарезервоване слово мови С++. Це як мінімум незручно.
Поза форумом