fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. struct batman
  5. {
  6. long long so;
  7. long long vt;
  8. };
  9. batman a[2005];
  10. long long d[2005];
  11. long long kq=1,n;
  12. bool aaaa(batman l,batman r)
  13. {
  14. return l.so<r.so;
  15. }
  16. void nhap()
  17. {
  18. ifstream fi("SUBSET.INP");
  19. fi>>n;
  20. for (int i=1;i<=n;i++)
  21. {
  22. fi>>a[i].so;
  23. a[i].vt=i;
  24. d[i]=1;
  25. }
  26. sort(a+1,a+1+n,aaaa);
  27. }
  28. void xuly()
  29. {
  30. for (int i=1;i<=n;i++)
  31. {
  32. long long best=0;
  33. for (int j=1;j<=i-1;j++)
  34. {
  35. if(a[i].so%a[j].so==0 && d[j]>best)
  36. {
  37. best=d[j];
  38. }
  39. d[i]=best+1;
  40. }
  41. kq=max(kq,d[i]);
  42. }
  43.  
  44. }
  45. void ghi()
  46. {
  47. ofstream fo("SUBSET.OUT");
  48. fo<<kq<<endl;
  49. for(int i=kq;i>=1;i--)
  50. {
  51. for(int j=1;j<=n;j++)
  52. {
  53. if (d[j]==i)
  54. fo<<a[j].vt<<" ";
  55. }
  56. fo<<endl;
  57. }
  58. }
  59. int main()
  60. {
  61. nhap();
  62. xuly();
  63. ghi();
  64. }
  65.  
Success #stdin #stdout 0.01s 5440KB
stdin
Standard input is empty
stdout
Standard output is empty