Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main()
- {
- int n,k;
- long long int wynik = 0;
- char znak[7];
- int ilosc[7];
- ilosc[0] = 0;
- ilosc[1] = 0;
- ilosc[2] = 1;
- for(int i=3; i < 7; i++)
- {
- ilosc[i] = 2*ilosc[i-1] + 1;
- }
- int j = 0; // patrzy ile jest jedynek w ostatnich 7 znakach
- scanf("%d %d", &n, &k);
- int i = 0;
- for( ; i<7 && i < n; i++)
- {
- scanf(" %c", &znak[i%7]);
- if(znak[i%7] == '1') j++;
- }
- int pom = znak[0];
- if(j <= 0) cout << "0";
- else
- {
- wynik = ilosc[j-1] + 1;
- for( ; i<n; i++)
- {
- scanf(" %c", &znak[i%7]);
- if(znak[i%7] == '0' && pom == 1) j--;
- if(znak[i%7] == '1' && pom == 0) j++;
- if(znak[i%7] == '1')
- {
- //cout << j << " ";
- wynik = wynik + ilosc[j];
- }
- if(j <= 0) break;
- if(i == n-7) break;
- pom = int(znak[(i+1)%7] - 48);
- }
- }
- printf("%lld", wynik%k);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement