@NONAME8

Как изменить массив, чтобы цикл корректно сработал?

Задача с олимпиадного программирования
Условие:
5a2bd95996da3104814003.png
пытался найти похожую задачу и нашел:
www.cyberforum.ru/cpp-beginners/thread1562060.html

переделал под условие моей задачи
#include <iostream>
#include <fstream>
using namespace std;
int main(){
    ofstream f2;
    f2.open("/Users/admin/Desktop/train/output.txt",ios::out);
    
    const int len = 2, strings = 3;
    const char ch = '\n';
    char mass[len][strings];
    int order[] = { 0, 1, 2, 1, 2, 1 }; ////
    
    ifstream fs("/Users/admin/Desktop/train/input.txt", ios::in | ios::binary);
    int i = 0;///
    for(int r = 0; r<strings; r++)
    {
        fs.getline(mass[r], len-1,ch); //Считываем строки в массив
    }
    
    
    for (int i = 0; mass[len][order[i % 6]]!= 0; i++)
    {
        mass[len][order[i % 6]]--;
        cout<< mass[len][0]<<mass[len][1]<< mass[len][2]<<endl;
    }
    cout << i << endl;
}


но у меня выдает 3 пустых строки и потом ноль.

Помогите, пожалуйста, решить эту задачу
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Задача решается вообще без массивов и цикла.
Для начала определим, сколько раз будет полный проход Л-С-П-С:
N := min(A, int(B/2), C);
Количество съеденных к тому времени конфет будет N*4. Посмотрим, сколько конфет останется в вазах:
A := A-N; B := B-N*2; C := C-N;
N := N*4;

Определим, на каком шаге ваза будет пустой и добавим съеденные конфеты:
если A > 0 то 
    N := N+1;
    если B > 0 то
        N := N+1;
        если C > 0 то
            N := N+1;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы