Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<vector>
- #include<set>
- using namespace std;
- struct dnk
- {
- int fir, sec, th, fou;
- };
- vector<dnk> a(int(1e5)), pref(int(1e5));
- set<dnk> used;
- dnk pr;
- int main()
- {
- int n, k;
- cin >> n >> k;
- for(int i =0; i < n; i++)
- {
- char x;
- cin >> x;
- if (x == 'A') a[i].fir++;
- if(x == 'C') a[i].sec++;
- if (x == 'G') a[i].th++;
- if (x == 'T') a[i].fou++;
- if(i)
- {
- pref[i].fir = pref[i - 1].fir + a[i].fir;
- pref[i].sec = pref[i - 1].sec + a[i].sec;
- pref[i].th = pref[i - 1].th + a[i].th;
- pref[i].fou = pref[i - 1].fou + a[i].fou;
- }
- else
- {
- pref[i].fir = a[i].fir;
- pref[i].sec = a[i].sec;
- pref[i].th = a[i].th;
- pref[i].fou = a[i].fou;
- }
- }
- for(int i = k; i < n; i++)
- {
- pr.fir = pref[i].fir - pref[i - k].fir;
- pr.sec = pref[i].sec - pref[i - k].sec;
- pr.th = pref[i].th - pref[i - k].th;
- pr.fou = pref[i].fou - pref[i - k].fou;
- used.insert(pr);
- }
- cout << used.size();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement