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

    ДНК каждой из клеток состоит из последовательности азотистых оснований, каждое из которых закодировано буквой A, G, T или C. Вирус также описывается последовательностью азотистых оснований и эта последовательность встраивается в произвольное место ДНК клетки.

    Чтобы выделить вирус, необходимо найти самую длинную последовательность подряд идущих азотистых оснований, которая встречается в ДНК всех трех зараженных клеток.

    Формат входных данных
    Во входных данных задается три строки, состоящих из символов A, G, T и C, описывающих ДНК зараженных клеток. Длина строк не превосходит 100.

    Формат результата
    Выведите описание вируса. Если возможных вариантов несколько — выведите любой.

Ответы 1

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

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

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

    #include <iostream>

    #include <string>

    #include <algorithm>

    #include <vector>

    using namespace std;

    int main()

    {

       string a,b,c,mi;

       int y = 0;

       cin >> a >> b >> c;

       vector <string> z;

       if (a.length() <= b.length() && a.length() <= c.length()){

           mi = a;

       }

       else if (b.length() <= a.length() && b.length() <= c.length()){

           mi = b;

       }

       else{

           mi = c;

       }

       for (int i = 1;i <= mi.length();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 << z[z.size() - 1];

       return 0;

    }

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years