Advertisement
Guest User

Untitled

a guest
Oct 20th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. #pragma optimize ("O3")
  2. #include <fstream>
  3. #include <iostream>
  4. #include <algorithm>
  5. using namespace std;
  6.  
  7. int quanti_fatt=0;
  8. const int MAXN=200;
  9. int L, N, K, cont=0;
  10. int pozzi[MAXN];
  11. int pozzii[MAXN];
  12. int somme[MAXN];
  13. int fattoriali[MAXN];
  14.  
  15. void pozzo(int k, int i_attuale, int l_attuale, bool taken){
  16. if (i_attuale+k > N-1 || k <0) return;
  17.  
  18. if (taken){
  19. l_attuale+=pozzii[i_attuale];
  20. k--;
  21. }
  22. if (l_attuale+somme[k+i_attuale]-somme[i_attuale]< L)
  23. return;
  24. if (k==0){
  25. // cout<<l_attuale<<" ";
  26. if (l_attuale>=L){
  27.  
  28. quanti_fatt=(quanti_fatt%10007+(fattoriali[K]%10007*fattoriali[N-K-1]%10007)%10007)%10007;
  29. //quanti_fatt=(quanti_fatt+(fattoriali[K]*fattoriali[N-K-1]));
  30. //cout<<quanti_fatt<<endl;
  31. }
  32.  
  33. return;
  34. }
  35. if (i_attuale==N-2) return;
  36.  
  37. pozzo(k, i_attuale+1, l_attuale, true);
  38. pozzo(k, i_attuale+1, l_attuale, false);
  39. }
  40.  
  41.  
  42. int main(){
  43. fattoriali[0]=1;
  44. for (int i=1;i<=MAXN;i++){
  45. fattoriali[i]=1;
  46. fattoriali[i]=(fattoriali[i-1]%10007*i%10007)%10007;
  47. }
  48. ifstream in ("input.txt");
  49. ofstream out ("output.txt");
  50.  
  51. in>>L>>N>>K;
  52. int n=N-1;
  53. for (int i=0;i<n;i++){
  54. in>>pozzi[n-i-1];
  55.  
  56. }
  57. sort(pozzi, pozzi+n);
  58. for (int i=0;i<n;i++){
  59. pozzii[i]=pozzi[n-1-i];
  60. //cout<<pozzii[i]<<" ";
  61.  
  62. }
  63.  
  64. somme[0]=pozzii[0];
  65. for (int i=1;i<n;i++)
  66. somme [i]=somme[i-1]+pozzii[i];
  67. //cout<<endl;
  68.  
  69. pozzo(K, 0, 0, true);
  70. pozzo(K, 0, 0, false);
  71. out<<quanti_fatt;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement