Решение задачи Кастинг с Acmp

Без пояснения   Просмотров: 19


В театре работает n актеров. Известно, что среди них a – высоких, b – голубоглазых и с – блондинов. Для главной роли в новом спектакле режиссеру требуется только один высокий голубоглазый блондин. Чтобы спланировать свое время для беседы с каждым таким артистом из труппы театра, режиссеру необходимо узнать, какое максимальное или какое минимальное количество артистов из работающих в театре подходит для этой роли.

Требуется написать программу, которая по заданным числам n, a, b и с определяет минимальное или максимальное количество актеров, с которыми режиссер должен переговорить.

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    int komanda,n,a,b,c,k = 0;
    cin >> komanda >> n >> a >> b >> c;
    int aa[3][n],m;
    for(int i = 0; i < 3; ++i)
        for(int j = 0; j < n; ++j)
            aa[i][j] = 0;
    for(int i = 0; i < 3; ++i)
        for(int j = 0; j < n; ++j)
            aa[i][j] = 0;
    int cc = 0;
    int ccc; int d;
    if(komanda==2){
        m = a;
        if(m > b)
            m = b;
        if(m > c)
            m = c;
        cout << m;
        return 0;
    }
    else{
        for(int i = 0,j = 0; i < n, j < a; ++i, ++j)
            aa[0][i] = 1;
        for(int i = n - 1, j = 0; i >= 0, j < b; --i, ++j)
            aa[1][i] = 2;
        cc = 0;
        for(int i = 0; i < n; ++i){
            if(aa[0][i]==0){
                aa[2][i] = 3;
                cc++;
            }
            if(aa[1][i]==0){
                aa[2][i] = 3;
                cc++;
            }
            if(cc==c)
                break;
        }
    }
    if(cc < c){
        ccc = c - cc;
        d = 0;
        for(int i = 0; i < n; ++i)
            if(aa[2][i]==0){
                aa[2][i] = 3;
                d++;
                if(d==ccc)
                    break;
            }
    }
    bool bb = true;
    for(int i = 0; i < n; ++i){
        bb = false;
        for(int j = 0; j < 3; ++j)
            if(aa[j][i]==0)
                bb = true;
        if(bb==false)
            k++;
    }
    cout << k;
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться