Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <cmath>
- using namespace std;
- ifstream f("discuri.in");
- ofstream g("discuri.out");
- int n,i,j,nr,k;
- bool sw;
- double dd,dp;
- double d[10001],x[10001];
- bool vc[10001]={true};
- double dist(int i,int j)
- {
- double r,rr;
- r=d[i];
- rr=d[j];
- return x[i]+sqrt((r+rr)*(r+rr)-(r-rr)*(r-rr));
- }
- int main()
- {
- f>>n;
- for(i=1;i<=n;++i)
- f>>d[i];
- f.close();
- for(i=1;i<=n;++i)
- vc[i]=true;
- for(i=1;i<=n;++i)
- {
- dd=d[i];
- k=0;
- for(j=1;j<=i-1;++j)
- {
- dp=dist(j,i);
- if(dd<=dp)
- dd=dp,k=j;
- }
- x[i]=dd;
- for(j=k+1;j<=i-1;++j)
- vc[j]=false;
- }
- k=0;
- dd=0;
- for(i=1;i<=n;++i)
- if(dd<x[i]+d[i])
- dd=x[i]+d[i],k=i;
- for(i=k+1;i<=n;++i)
- vc[i]=false;
- nr=0;
- for(i=1;i<=n;++i)
- if(!vc[i])
- ++nr;
- g<<nr<<'\n';
- for(i=1;i<=n;++i)
- if(!vc[i])
- g<<i<<'\n';
- g.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement