Advertisement
a53

turn

a53
Nov 1st, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. struct meh
  4. {
  5. int col,lat;
  6.  
  7. };
  8. meh a[101];
  9. int st[100],k,m,n,ap[1001],sum[1001],Max,rez[1001];
  10.  
  11. bool sol(int k)
  12. {
  13. if(sum[k]==m)
  14. return 1;
  15. return 0;
  16. }
  17.  
  18. bool valid(int k)
  19. {
  20. if(a[st[k-1]].col==a[st[k]].col)
  21. return 0;
  22. if(k>1&&a[st[k-1]].lat<a[st[k]].lat)
  23. return 0;
  24. if(sum[k-1]+a[st[k]].lat<=m)
  25. {
  26. sum[k]=sum[k-1]+a[st[k]].lat;
  27. return 1;
  28. }
  29. return 0;
  30. }
  31.  
  32. void afis(int k)
  33. {
  34.  
  35. for(int i=1;i<=k;++i)
  36. printf("%d ",st[i]);
  37. printf("\n");
  38. }
  39.  
  40. void backit(int k)
  41. {
  42. for(int i=1;i<=n;++i)
  43. {
  44. if(!ap[i])
  45. {
  46. ap[i]=1;
  47. st[k]=i;
  48. if(valid(k))
  49. if(sol(k))
  50. afis(k);
  51. else
  52. backit(k+1);
  53. ap[i]=0;
  54. }
  55. }
  56. }
  57.  
  58. int main()
  59. {
  60. freopen("turn.in","r",stdin);
  61. freopen("turn.out","w",stdout);
  62. scanf("%d %d",&n,&m);
  63. for(int i=1;i<=n;++i)
  64. scanf("%d%d",&a[i].lat,&a[i].col);
  65. backit(1);
  66. return 0;
  67.  
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement