Advertisement
a53

D_i_s_c_u_r_i

a53
Sep 19th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. #include <fstream>
  2. #include <cmath>
  3. using namespace std;
  4. ifstream f("discuri.in");
  5. ofstream g("discuri.out");
  6. int n,i,j,nr,k;
  7. bool sw;
  8. double dd,dp;
  9. double d[10001],x[10001];
  10. bool vc[10001]={true};
  11.  
  12. double dist(int i,int j)
  13. {
  14. double r,rr;
  15. r=d[i];
  16. rr=d[j];
  17. return x[i]+sqrt((r+rr)*(r+rr)-(r-rr)*(r-rr));
  18. }
  19.  
  20. int main()
  21. {
  22. f>>n;
  23. for(i=1;i<=n;++i)
  24. f>>d[i];
  25. f.close();
  26. for(i=1;i<=n;++i)
  27. vc[i]=true;
  28. for(i=1;i<=n;++i)
  29. {
  30. dd=d[i];
  31. k=0;
  32. for(j=1;j<=i-1;++j)
  33. {
  34. dp=dist(j,i);
  35. if(dd<=dp)
  36. dd=dp,k=j;
  37. }
  38. x[i]=dd;
  39. for(j=k+1;j<=i-1;++j)
  40. vc[j]=false;
  41. }
  42. k=0;
  43. dd=0;
  44. for(i=1;i<=n;++i)
  45. if(dd<x[i]+d[i])
  46. dd=x[i]+d[i],k=i;
  47. for(i=k+1;i<=n;++i)
  48. vc[i]=false;
  49. nr=0;
  50. for(i=1;i<=n;++i)
  51. if(!vc[i])
  52. ++nr;
  53. g<<nr<<'\n';
  54. for(i=1;i<=n;++i)
  55. if(!vc[i])
  56. g<<i<<'\n';
  57. g.close();
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement