Advertisement
a53

Alinieri

a53
Mar 11th, 2020
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. // prof. Chesca Ciprian - sursa C++ - 100 p
  2. // Complexitate O(N)
  3.  
  4.  
  5. #include <bits/stdc++.h>
  6. #define nmax 181
  7.  
  8.  
  9. using namespace std;
  10.  
  11. ifstream f("alinieri.in");
  12. ofstream g("alinieri.out");
  13.  
  14. int N,P,Z,gp[nmax],w[nmax],na,nta,nta1=0,nta2=0;
  15.  
  16.  
  17.  
  18. int main()
  19. {
  20. int t,i,x;
  21.  
  22. f>>N>>P>>Z;
  23.  
  24.  
  25. for(i=1;i<=N;i++)
  26. {
  27. f>>x;
  28. assert(x>=1 && x <=1000);
  29. gp[x%180]++;
  30. }
  31.  
  32. assert(N>=1 && N<=100000);
  33. assert(P>=2 && P<=N);
  34. assert(Z>=1 && Z<=1000000);
  35.  
  36.  
  37.  
  38. for(t=1;t<=180;t++)
  39. {
  40. na=0;
  41. for(i=0;i<=179;i++)
  42. w[i]=0;
  43.  
  44. for(i=0;i<=179;i++)
  45. w[(t*i)%180]+=gp[i];
  46.  
  47.  
  48. for(i=0;i<=179;i++)
  49. if (w[i]>=P) na++;
  50.  
  51. nta+=na;
  52.  
  53. }
  54.  
  55. nta*=2*(Z/360);
  56.  
  57. for(t=1;t<=Z%360;t++)
  58. {
  59. na=0;
  60. for(i=0;i<=179;i++)
  61. w[i]=0;
  62.  
  63. for(i=0;i<=179;i++)
  64. w[(t*i)%180]+=gp[i];
  65.  
  66.  
  67. for(i=0;i<=179;i++)
  68. if (w[i]>=P) na++;
  69.  
  70. nta+=na;
  71.  
  72. }
  73.  
  74.  
  75. g << nta << "\n";
  76.  
  77. f.close();
  78. g.close();
  79. return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement