Задание было, написать программу и распараллелить ее, само задание звучит так : Задана последовательность, состоящая только из символов >, < и -. Требуется найти количество стрел, которые спрятаны в этой последовательности. Стрелы – это подстроки вида >>--> и <--<<.
Входные данные
В первой строке входного файла INPUT.TXT записана строка, состоящая из символов >, < и - (без пробелов). Строка состоит не более, чем из 250 символов.
Выходные данные В единственную строку выходного файла OUTPUT.TXT нужно вывести искомое количество стрелок.
Программу я написал, но распараллелить не смог,аргументируя ,что дана последовательность, которую если разбив то можно потерять пару стрелок, сказали,что я не прав и что можно распараллелить , подскажите как это можно реализовать
Код программы
include <iostream>
#include <string>
#include <fstream>
using namespace std;
int f(string s) {
int k = 0;
string t;
for (int i = 0; i <= int(s.size()) - 5; i++) {
t = s.substr(i, 5);
if (t == ">>-->" || t == "<--<<")
k++;
}
return k;
}
int main() {
ifstream in ("input.txt");
ofstream out("output.txt");
string s, t;
int k;
in >> s;
k = f(s);
out << k;
cout << k;
out.close();
return 0;
}
У вас длина стрелы 5 символов. Разбиваете исходную строку на N блоков, причем следующий блок начинается за 4 символа до конца предыдущего. И каждый блок отдаете своему потоку
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости