Мир охватила эпидемия воспаления хитрости! Ученым удалось выделить ДНК из трех вероятно...

0 голосов
125 просмотров

Мир охватила эпидемия воспаления хитрости! Ученым удалось выделить ДНК из трех вероятно зараженных клеток. ДНК каждой из клеток состоит из последовательности азотистых оснований, каждое из которых закодировано буквой A, G, T или C. Вирус также описывается последовательностью азотистых оснований и эта последовательность встраивается в произвольное место ДНК клетки. Чтобы выделить вирус, необходимо найти самую длинную последовательность подряд идущих азотистых оснований, которая встречается в ДНК всех трех зараженных клеток. Формат входных данных Во входных данных задается три строки, состоящих из символов A, G, T и C, описывающих ДНК зараженных клеток. Длина строк не превосходит 100. Формат результата Выведите описание вируса. Если возможных вариантов несколько — выведите любой.


Информатика (12 баллов) | 125 просмотров
Дан 1 ответ
0 голосов

Решал эту штуку на с++.

И я думаю это самый норм язык для этого, потому что я перебирал

Кстати, если мой учитель это читает, я сам сделал эту штуку!


#include

#include

#include

#include

using namespace std;

int main()

{

   string a,b,c,mi;

   int y = 0;

   cin >> a >> b >> c;

   vector z;

   if (a.length()

       mi = a;

   }

   else if (b.length()

       mi = b;

   }

   else{

       mi = c;

   }

   for (int i = 1;i

       y = 0;

       for (int l = 0;l < mi.length() - i + 1;l++){

           string s;

           for (int j = 0;j < i;j++){

               s = s + mi[l + j];

           }

           if (a.find(s) != std::string::npos && b.find(s) != std::string::npos && c.find(s) != std::string::npos){

               z.push_back(s);

               y = 1;

               break;

           }

       }

       if (y == 0){

           break;

       }

   }

   cout

   return 0;

}


(62 баллов)