Pagini recente » Cod sursa (job #902510) | Cod sursa (job #611367) | Cod sursa (job #2416783) | Cod sursa (job #2634988) | Cod sursa (job #262988)
Cod sursa(job #262988)
1. #include <fstream>
2.
3. using namespace std;
4.
5. unsigned int N, S, posib = 0, suma = 0;
6. unsigned int sir[1001];
7. unsigned int nr[6];
8.
9.
10. void read ();
11. void back (int, int);
12. void write ();
13.
14. int main ()
15. {
16. read ();
17. back (1, 1);
18. write ();
19. return 0;
20. }
21.
22. void back (int p, int k)
23. {
24. unsigned int pval;
25. for (pval = p; pval <= N; pval++)
26. {
27. if (suma + sir[pval] <= S)
28. {
29. nr[k] = pval;
30. suma += sir[pval];
31. if (k == 5)
32. {
33. if (suma == S) posib++;
34. }
35. else if (k < 5)
36. {
37. back (pval + 1, k + 1);
38. }
39. suma -= sir[pval];
40. }
41. }
42. }
43.
44. void read ()
45. {
46. unsigned int i;
47. ifstream fi ("take5.in");
48. fi >> N >> S;
49. for (i = 1; i <= N; i++)
50. {
51. fi >> sir[i];
52. if (sir[i] > S)
53. {
54. i--;
55. N--;
56. }
57. }
58. fi.close();
59. }
60.
61. void write ()
62. {
63. ofstream fo ("take5.out");
64. fo << posib << endl;
65. fo.close ();
66. }