Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/47: Рейтинг темы: голосов - 47, средняя оценка - 4.64
8 / 8 / 0
Регистрация: 15.02.2020
Сообщений: 195

Определить можно ли продать k билетов на соседние места в одном ряду

22.07.2020, 00:11. Показов 9290. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В кинотеатре n рядов по m мест в каждом (n и m не превосходят 20). В двумерном массиве хранится информация о проданных билетах, число 1 означает, что билет на данное место уже продан, число 0 означает, что место свободно. Поступил запрос на продажу k билетов на соседние места в одном ряду. Определите, можно ли выполнить такой запрос.

Формат входных данных
Программа получает на вход числа n и m. Далее идет n строк, содержащих m чисел (0 или 1), разделенных пробелами. Затем дано число k.
Формат выходных данных
Программа должна вывести номер ряда, в котором есть k подряд идущих свободных мест. Если таких рядов несколько, то выведите номер наименьшего подходящего ряда. Если подходящего ряда нет, выведите число 0.

Sample Input:

3 4
0 1 0 1
1 0 0 1
1 1 1 1
2
Sample Output:

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
43
44
#include <iostream>
#include <iomanip>
#include <cmath>
#include <vector>
#include <set>
using namespace std;
 
int main() {
    int n, m, k, s = 0;
    cin >> n >> m;
    int a[1000][1000];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cin >> a[i][j];
        }
    }
    cin >> k;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (s == k)
            {
                cout << i+1;
                break;
            }
            if (a[i][j] == 0)
            {
                s++;
            } else
            {
                s = 0;
            }
        }
        if (s == k)
        {
            break;
        }
        s = 0;
    }
    return 0;
}
Здравствуйте, у меня почему-то не работает программа, как будто либо сразу завершается либо что не понимаю почему, толи неверный ответ пишет, ну у меня там числа даже не получается ввести, а там пишет неверный ответ вот не пойму

Добавлено через 1 час 3 минуты
Вот я тоже не понимаю что не так?!

Добавлено через 9 минут
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
43
44
45
46
#include <iostream>
#include <iomanip>
#include <cmath>
#include <vector>
#include <set>
using namespace std;
 
int main() {
    int n, m, k, s = 0, r = 0;
    cin >> n >> m;
    int a[1000][1000];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cin >> a[i][j];
        }
    }
    cin >> k;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (s == k)
            {
                r = i+1;
                break;
            }
            if (a[i][j] == 0)
            {
                s++;
            } else
            {
                s = 0;
            }
        }
        if (s == k)
        {
            r = i+1;
            break;
        }
        s = 0;
    }
    cout << r;
    return 0;
}
так тоже не работает

Добавлено через 3 минуты
а всё, сделал
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.07.2020, 00:11
Ответы с готовыми решениями:

Кинотеатр - Продажа k билетов на соседние места в одном ряду
В кинотеатре n рядов по m мест в каждом. В двумерном массиве хранится информация о проданных билетах, число 1 означает, что билет на данное...

Составить программу, определяющую число проданных билетов на места в 12-м ряду
В зрительном зале 25 рядов, в каждом из которых 36 мест (кресел). Информация о проданных билетах хранится в двумерном массиве, номера строк...

Составить программу определяющую число проданных билетов на места в 12-м ряду
В зрительном зале 25 рядов, в каждом из которых по 36 мест (кресел) Информация о проданных билетах хранится в двумерном массиве, номера...

5
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
22.07.2020, 07:30
Комментарии к коду:
1. Подключены не используемые библиотеки, хотя тут кроме <iostream> ничего больше и не нужно
2. Когда данные о размере массива получают в ходе выполнения задачи, то память под такой массив следует выделять динамически, так как реализовано в примере выше - не эффективное использование ресурсов.
3. Нету реализации условия " Если таких рядов несколько, то выведите номер наименьшего подходящего ряда."
0
9 / 8 / 1
Регистрация: 09.03.2021
Сообщений: 49
17.03.2021, 21:34
блин кинь решение я чет не понимаю
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
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
    int n,l,d,e,k,m;
    cin >> n >> m;
    vector<vector<int> > t(n, vector<int> (m));
    for (int i = 0; i < t.size(); ++i) {
        for (int j = 0; j < t[i].size(); ++j) {
            cin >> t[i][j];
        }
    }
    cin>>k;
    l = 0;
    e = 0;
    int g = 0;
    for (int i = 0; i < t.size(); ++i) {
        e = 0;
        d = 0;
        for (int j = 0; j < t[i].size() - 1; ++j){
            if (g == 0) {
                if (t[i][j] == 0 && t[i][j + 1] == 0) {
                    e = e + 1;
                    d = e;
                }
                else {
                    e = 0;
                }
                if (e + 1 >= k && e != 0) {
                    l = i + 1;
                    g = 1;
                }
            }
        }
    }
    cout<<l;
}
0
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
18.03.2021, 20:43
ggbetgamer22,

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
#include <iostream>
 
using namespace std;
 
int main()
{
    int cols, rows, required_seats, free_row;
    cout << "Enter rows number > ";
    cin >> rows;
    cout << "Enter columns number > ";
    cin >> cols;
    cout << "Enter number of seats required > ";
    cin >> required_seats;
 
    cout << "Enter array : \n";
    bool** arr = new bool*[rows];
    for (int i = 0; i < rows; ++i) {
        arr[i] = new bool[cols];
        for (int j = 0; j < cols; ++j)
            cin>>arr[i][j];
    }
 
    cout << endl;
 
    for (int i = 0; i < rows; ++i) {
        int free_seats = 0;
        for (int j = 0; j < cols; ++j) {
            if (arr[i][j] == 0) free_seats++;
            else free_seats = 0;
            if (required_seats == free_seats) {
                cout << i+1 <<endl;
                break;
            }
        }
        if (required_seats == free_seats) break;
        if (i == rows - 1) cout << 0 << endl;
    }
 
    return 0;
}
0
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
18.03.2021, 23:15
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
43
44
45
46
47
48
49
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
 
int main(){
   /*
   int n,m;
   cin>>n>>m;
 
   int **a=new int*[n];
   for (int i = 0; i < n; ++i)
       a[i] = new int [m];
 
   for (int i = 0; i < n; i++){
        for (int j = 0; j < m; j++)
        {
            cin >> a[i][j];
            cout<<a[i][j]<<" ";
        }
         cout<<"\n";
   }    */
   const n=3,m=4;
   int a[3][4]={0,1,0,1,
                1,0,0,1,
                1,1,1,1};
 
 
   int k;
   cin >>k;
   string s(k,'0');
   for (int i = 0; i < n; i++){
        stringstream t;
        string ss="";
        for (int j = 0; j < m; j++)
               t<<a[i][j];
 
        t>>ss;
        if(ss.find(s,0)!=string::npos){
                 cout<<i+1;
                 system("pause");
                 return 0;
                }
        }
 
    cout<<0;
   system("pause");
   return 0;
}
0
9 / 8 / 1
Регистрация: 09.03.2021
Сообщений: 49
19.03.2021, 23:36
а вот такое не подойдет?
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
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
    int n,l,d,e,k,m;
    cin >> n >> m;
    vector<vector<int> > t(n, vector<int> (m));
    for (int i = 0; i < t.size(); ++i) {
        for (int j = 0; j < t[i].size(); ++j) {
            cin >> t[i][j];
        }
    }
    cin>>k;
    l = 0;
    e = 0;
    bool flag = false;
    for (int i = 0; i < t.size(); ++i) {
        e = 0;
        d = 0;
        for (int j = 0; j < t[i].size(); ++j){
            if (flag == false) {
                if (t[i][j] == 0) {
                    e = e + 1;
                }
                else {
                    e = 0;
                }
                if (e >= k && e != 0) {
                    l = i + 1;
                    flag = true;
                }
            }
        }
    }
    cout<<l;
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.03.2021, 23:36
Помогаю со студенческими работами здесь

Составить программу, определяющую число проданных билетов на места в 12-м ряду
В зрительном зале 25 рядов, в каждом из которых 36 мест (кресел). Информация о проданных билетах хранится в двумерном массиве, номера строк...

Разыгрываются шесть билетов в театр, четыре из которых на места в первом ряду
Разыгрываются шесть билетов в театр, четыре из которых на места в первом ряду. Составить закон распределения на числа билетов на места в...

Двумерные массивы: Составить программу, определяющее число проданных билетов на места в 12-м ряду
4. В зрительном зале 25 рядов, в каждом из которых 36 мест (кресел). Информация о проданных билетах хранится в двумерном массиве, номера...

Двумерные массивы: Составить программу, определяющее число проданных билетов на места в 12-м ряду
В зрительном зале 25 рядов, в каждом из которых 36 мест (кресел). Информация о проданных билетах хранится в двумерном массиве, номера строк...

Определить число проданных билетов на местах в 12 ряду
в зрительном зале 25 рядов по 36 кресел. Информация о проданных билетах записана в двухмерный массив-номера строк соответствуют номерам...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru