Проблема существует в первом вложенном цикле, где результаты не выходят, как ожидалось, я работаю над CodeBlocks 17.12
Что я сделал, чтобы попытаться решить проблему, это изменить "int s[n] "to" long long s [n] ", и это сработало хорошо, но, к сожалению, для других входных данных мне нужно вернуть его" int s [0] ", чтобы оно работало хорошо.
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n;
do
{
cin >> n;
}
while (n < 1 || n > pow(10, 5));
int s[n];
int m = 0;
//Inputs number of friends in each group.
for (int i = 0; i < n; i++)
{
do
{
cin >> s[i];
}
while (s[i] < 1 || s[i] > 4);
if (s[i] == 4)
{
m++;
s[i] = 0;
}
else
{
/* Hold each number of members in the groups and add them to the rest numbers to check if it would be equal to 4 then
if two numbers equal to 4, both numbers will be 0s. */
for (int a = 0; a < n; a++)
{
if (a != i)
{
if (s[i] + s[a] == 4)
{
m++;
s[i] = 0;
s[a] = 0;
}
}
}
}
}
cout << m << endl;
}
}
ввод "78 2 2 2 2 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 3 2 2 2 2 2 22 1 1 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 "Как 78 в первой строке, а остальные - во второй.Ожидаемый результат: 38 [когда «long long s [0] работает хорошо»] Результат: 39 [когда «int s [0]» дает этот результат] Это проблема, если я плохо объяснил в коде: https://codeforces.com/contest/158/problem/B