Решение задачи №5 «Статистика» с ACMP
Условие задачи
Вася не любит английский язык, но каждый раз старается получить хотя бы четверку за четверть, чтобы оставаться ударником. В текущей четверти Вася заметил следующую закономерность: по нечетным дням месяца он получал тройки, а по четным – четверки. Так же он помнит, в какие дни он получал эти оценки. Поэтому он выписал на бумажке все эти дни для того, чтобы оценить, сколько у него троек и сколько четверок. Помогите Васе это сделать, расположив четные и нечетные числа в разных строчках. Вася может рассчитывать на оценку 4, если четверок не меньше, чем троек.
Входные данные
В первой строке входного файла INPUT.TXT записано единственное число N – количество элементов целочисленного массива (1 ≤ N ≤ 100). Вторая строка содержит N чисел, представляющих заданный массив. Каждый элемент массива – натуральное число от 1 до 31. Все элементы массива разделены пробелом.
Выходные данные
В первую строку выходного файла OUTPUT.TXT нужно вывести числа, которые соответствуют дням месяцев, в которые Вася получил тройки, а во второй строке соответственно расположить числа месяца, в которые Вася получил четверки. В третьей строке нужно вывести «YES», если Вася может рассчитывать на четверку и «NO» в противном случае. В каждой строчке числа следует выводить в том же порядке, в котором они идут во входных данных. При выводе, числа отделяются пробелом.
Решение на C++
#include <iostream>
using namespace std;
main()
{
int a[100],i,n,b[100]={0},c[100]={0},k=0,d=0;
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i];
if(a[i]%2==1){b[i]=a[i];k++;}
else {c[i]=a[i];d++;}
}
for(i=0;i<n;i++)
{if(b[i]!=0)
cout<<b[i]<<' ';}
cout<<endl;
for(i=0;i<n;i++)if(c[i]!=0)cout<<c[i]<<' ';
cout<<endl;
if(k>d) cout<<"NO";
else cout<<"YES";
}
Условия задач взяты с сайта acmp.ru