Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. #include <fstream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5. ifstream fin("numerologie.in");
  6. ofstream fout("numerologie.out");
  7. int x[11],n,m,a[1251],c[1251],p[20];
  8. vector <int> desc[1250];
  9. int summax=2000000000;
  10. void Descompunere(int x)
  11. {
  12. int cx=x,d=2,ok=0;
  13. while(x!=1)
  14. {
  15. if(x%d==0) {
  16. if(ok==0) {desc[cx].push_back(d); ok=1;}
  17. x=x/d;
  18. }
  19. else {d++;ok=0;}
  20. }
  21. }
  22.  
  23. void Try()
  24. { int cost=0;int viz[20];
  25. for( int i=1; i<=n; i++ )
  26. {
  27. int ok=0;
  28. for(j=1; j<=11; j++)
  29. if(x[j]==1 && binary_search(desc[a[i]].begin(),desc[a[i]].end(),p[j]))
  30. {
  31. ok=1;
  32. if(viz[p[j]]==0) {viz[p[j]]=1;cost+=c[p[j]];}
  33. }
  34.  
  35.  
  36.  
  37. }
  38. }
  39.  
  40. void Back(int k)
  41. {
  42. for(i=0;i<=1;i++)
  43. {
  44. x[k]=i;
  45. if(k==n) Try();
  46. else Back(k+1);
  47. }
  48. }
  49.  
  50. int main()
  51. { int i;
  52. p[1]=2;
  53. p[2]=3;
  54. p[3]=5;
  55. p[4]=7;
  56. p[5]=11;
  57. p[6]=13;
  58. p[7]=17;
  59. p[8]=19;
  60. p[9]=23;
  61. p[10]=29;
  62. p[11]=31;
  63.  
  64. fin>>n>>m;
  65. for( i=1; i<=n; i++)
  66. fin >> a[i];
  67.  
  68. for( i=1; i<=m; i++)
  69. fin>>c[i];
  70.  
  71. for( i=1; i<=n; i++)
  72. {
  73. Descompunere(a[i]);
  74.  
  75. }
  76.  
  77.  
  78. Back(1);
  79. return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement