Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. int n,k;
  7. long long int wynik = 0;
  8. char znak[7];
  9.  
  10. int ilosc[7];
  11. ilosc[0] = 0;
  12. ilosc[1] = 0;
  13. ilosc[2] = 1;
  14. for(int i=3; i < 7; i++)
  15. {
  16. ilosc[i] = 2*ilosc[i-1] + 1;
  17. }
  18. int j = 0; // patrzy ile jest jedynek w ostatnich 7 znakach
  19. scanf("%d %d", &n, &k);
  20. int i = 0;
  21. for( ; i<7 && i < n; i++)
  22. {
  23. scanf(" %c", &znak[i%7]);
  24. if(znak[i%7] == '1') j++;
  25. }
  26. int pom = znak[0];
  27. if(j <= 0) cout << "0";
  28. else
  29. {
  30. wynik = ilosc[j-1] + 1;
  31. for( ; i<n; i++)
  32. {
  33. scanf(" %c", &znak[i%7]);
  34. if(znak[i%7] == '0' && pom == 1) j--;
  35. if(znak[i%7] == '1' && pom == 0) j++;
  36. if(znak[i%7] == '1')
  37. {
  38.  
  39. //cout << j << " ";
  40. wynik = wynik + ilosc[j];
  41. }
  42. if(j <= 0) break;
  43. if(i == n-7) break;
  44. pom = int(znak[(i+1)%7] - 48);
  45. }
  46. }
  47. printf("%lld", wynik%k);
  48.  
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement