fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. unsigned int trojkat(unsigned int **tablica, int index, int i_podzbior);
  6.  
  7. int main()
  8. {
  9. int T;
  10. cin >> T;
  11. if(T <= 10000)
  12. {
  13. while(--T + 1)
  14. {
  15. int n, k;
  16. cin >> n >> k;
  17.  
  18. if(n >= k)
  19. {
  20.  
  21. if(k >= 0 && k <= 1000 && n <= 1000 && n >= 0)
  22. {
  23. unsigned int **pascal = new unsigned int*[n + 1];
  24. for(int i = 0; i <= n; ++i)
  25. {
  26. pascal[i] = new unsigned int[i + 1];
  27. }
  28.  
  29. cout << trojkat(pascal, n, k) << endl;
  30.  
  31. for(int i = 0; i <= n; ++i)
  32. {
  33. delete [] pascal[i];
  34. }
  35. delete [] pascal;
  36. }
  37. }
  38. }
  39.  
  40. }
  41.  
  42. return 0;
  43. }
  44.  
  45. unsigned int trojkat(unsigned int **tablica, int index, int i_podzbior)
  46. {
  47. for(int i = 0; i <= index; ++i)
  48. {
  49. tablica[i][0] = 1;
  50. tablica[i][i] = 1;
  51.  
  52. for(int j = 1; j < i; ++j)
  53. {
  54. tablica[i][j] = tablica[i - 1][j - 1] + tablica[i - 1][j];
  55. }
  56. }
  57. return tablica[index][i_podzbior];
  58. }
  59.  
Success #stdin #stdout 0s 15240KB
stdin
11
0 0
7 3
1000 2
1000 998
1000 1
1000 999
1000 3
1000 997
25 15
40 10
30 15
stdout
1
35
499500
499500
1000
1000
166167000
166167000
3268760
847660528
155117520