Advertisement
Guest User

Untitled

a guest
Dec 27th, 2018
298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. #include<set>
  4.  
  5. using namespace std;
  6.  
  7. struct dnk
  8. {
  9.     int fir, sec, th, fou; 
  10. };
  11.  
  12. vector<dnk> a(int(1e5)), pref(int(1e5));
  13. set<dnk> used;
  14. dnk pr;
  15.  
  16. int main()
  17. {
  18.     int n, k;
  19.     cin >> n >> k;
  20.    
  21.     for(int i  =0; i < n; i++)
  22.     {
  23.         char x;
  24.         cin >> x;
  25.         if (x == 'A') a[i].fir++;
  26.         if(x == 'C') a[i].sec++;
  27.         if (x == 'G') a[i].th++;
  28.         if (x == 'T') a[i].fou++;
  29.        
  30.         if(i)
  31.         {
  32.            
  33.             pref[i].fir = pref[i - 1].fir + a[i].fir;
  34.             pref[i].sec = pref[i - 1].sec + a[i].sec;
  35.             pref[i].th = pref[i - 1].th + a[i].th;
  36.             pref[i].fou = pref[i - 1].fou + a[i].fou;
  37.         }
  38.         else
  39.         {
  40.             pref[i].fir = a[i].fir;
  41.             pref[i].sec = a[i].sec;
  42.             pref[i].th = a[i].th;
  43.             pref[i].fou = a[i].fou;
  44.         }
  45.     }
  46.    
  47.     for(int i = k; i < n; i++)
  48.     {
  49.         pr.fir = pref[i].fir - pref[i - k].fir;
  50.         pr.sec = pref[i].sec - pref[i - k].sec;
  51.         pr.th = pref[i].th - pref[i - k].th;
  52.         pr.fou = pref[i].fou - pref[i - k].fou;
  53.         used.insert(pr);
  54.     }
  55.    
  56.     cout << used.size();
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement