Cod sursa(job #2374868)

Utilizator tangerine515Alex Anton tangerine515 Data 7 martie 2019 21:00:45
Problema Potrivirea sirurilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <cassert>
#include <fstream>
#include <string>
#include <algorithm>
#include <vector>

// aici doar incerc ceva deci nu ma blamati

std::fstream fi("strmatch.in", std::ios::in);
std::fstream fo("strmatch.out", std::ios::out);

using result = struct { unsigned long long cnt = 0; std::vector<unsigned> patfind; };

int main (void) {
   std::string str1, str2;
   assert(std::getline(fi, str1));
   assert(std::getline(fi, str2));

   result val = { 0 };
   int showcnt = 0;

   unsigned found = str2.find(str1);
   while (found != std::string::npos) {
      if (showcnt < 1000) {
         ++showcnt;
         val.patfind.push_back(static_cast<unsigned>(found));
      }
      ++val.cnt;
      found = str2.find(str1, found + 1);
   }

   assert(fo << val.cnt << "\n");
   for (const auto& i : val.patfind)
      assert(fo << i << " ");

   return 0;
}