Advertisement
a53

joc13

a53
Apr 27th, 2022
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ifstream in("joc.in");
  4. ofstream out("joc.out");
  5. int c,n,apoz,bpoz,i,mutare,vap[12001],vbp[12001],nra,nrb, cif[7]= {0}, maxx=0,a,b,X ;
  6. int main()
  7. {
  8. in>>c>>n;
  9. /// calculez numarul de divizori ai lui n
  10.  
  11. int d=2,p=1,nr=0,x=n;
  12. while(x>1)
  13. {
  14. nr=0;
  15. while(x%d==0)
  16. nr++,x/=d;
  17. p*=(nr+1);
  18. d++;
  19. if(d*d>x and x>1) x=1,p*=2;
  20. }
  21. if(c==1)
  22. out<<p;
  23. else
  24. {
  25. a=1;
  26. b=0;
  27. apoz=1,bpoz=1; /// pun pionii pe prima pozitie
  28. vap[1]=vbp[1]=nra=nrb=1; /// pun in vectori pozitiile pionilor
  29. while(apoz<n && bpoz<n)
  30. {
  31. mutare++; /// de cate ori il calculeaza pe X copii
  32. if(mutare%2==1)
  33. X=(mutare+(a*apoz+b*bpoz+n)%10)%6+1;
  34. else
  35. X=((mutare+1)%5+(a*apoz+b*bpoz+n)%10)%6+1;
  36.  
  37. cif[X]++;
  38. if(maxx<cif[X]) maxx=cif[X];
  39. apoz+=a*X; /// daca a=1 si b=0
  40. bpoz+=b*X; /// daca a=0 si b=1
  41. if(a==1)
  42. {
  43.  
  44. if(apoz<=n)/// sunt in tabla
  45. vap[++nra]=apoz;
  46. else vap[++nra]=n,apoz=n; /// am iesit din tabla
  47. if(apoz==bpoz)bpoz=1,vbp[++nrb]=1; /// sa nu uit sa trec pozitia de intoarcere in vector
  48. }
  49.  
  50. else
  51. {
  52. if(bpoz<=n)
  53. vbp[++nrb]=bpoz;
  54. else vbp[++nrb]=n,bpoz=n;
  55. if(apoz==bpoz)apoz=1,vap[++nra]=1; /// sa nu uit sa trec pozitia de intnrarcere in vector
  56. }
  57.  
  58. if(X==6)
  59. a%=2,b%=2;/// ramane ordinea mutarii copiilor
  60. else
  61. a=(a+1)%2,b=(b+1)%2;/// schimb ordinea mutarii copiilor
  62. }
  63. if(c==2)
  64. out<<maxx;
  65. else
  66. {
  67. if(apoz==n)
  68. for(i=1; i<=nra; i++)
  69. out<<vap[i]<<" ";
  70. else for(i=1; i<=nrb; i++)
  71. out<<vbp[i]<<" ";
  72. }
  73.  
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement