Параллельное программирование С++

70
21 ноября 2021, 17:40

Задание было, написать программу и распараллелить ее, само задание звучит так : Задана последовательность, состоящая только из символов >, < и -. Требуется найти количество стрел, которые спрятаны в этой последовательности. Стрелы – это подстроки вида >>--> и <--<<.

Входные данные В первой строке входного файла 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;
}
Answer 1

У вас длина стрелы 5 символов. Разбиваете исходную строку на N блоков, причем следующий блок начинается за 4 символа до конца предыдущего. И каждый блок отдаете своему потоку

READ ALSO
Сравнение строк в C++

Сравнение строк в C++

Задали сделать массив структур, в котором ведомости про поезда (по названиям переменных думаю всё понятно)Нужно чтобы программа выводила...

102
Поиск по нескольким полям класса

Поиск по нескольким полям класса

Подскажите, пожалуйста, статьи, примеры кода и тп

105
Параллельное программирование с++,openmp

Параллельное программирование с++,openmp

Задание было, написать программу и распараллелить ее, само задание звучит так : Циклическим сдвигом строки s называется строка sksk+1sk+2…s|s|s1s2…sk-1...

96