Pagini recente » Diferente pentru transformari-geometrice intre reviziile 21 si 20 | Istoria paginii utilizator/raduzer | Diferente pentru utilizator/apocalypto intre reviziile 68 si 211 | dist3 | Diferente pentru utilizator/apocalypto intre reviziile 194 si 195
Nu exista diferente intre titluri.
Diferente intre continut:
* ==user(user="laurion" type="tiny")==
Varianta de 100 de puncte
using namespace std;
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
#include<iomanip>
#define pb push_back
ofstream fout("xmoto.out");
struct nod{
double a,b,k,q,v;};
nod a[50005];
double v;
vector<double> ans;
int N;
double L,sa,sb,sq,sk;
double SA,SB,SK,SQ;
bool cmp(nod i, nod j)
{
return (i.v<j.v);
}
void cit()
{
int i,ii;
ifstream fin("xmoto.in");
fin>>N>>L;
for(i=1;i<=N;i++)
{
fin>>a[i].a>>a[i].b>>a[i].k>>a[i].q>>a[i].v;
}
sort(a+1,a+1+N,cmp);
/*for(i=1;i<=N;i++)
{
cout<<a[i].a<<" "<<a[i].b<<" "<<a[i].k<<" "<<a[i].q<<" "<<a[i].v<<"\n";
}*/
for(i=1;i<=N;i++)
{
SA+=a[i].a;
SK+=a[i].k;
}
sa=0;
sb=0;
sk=0;
sq=0;
for(i=0;i<=N;i++)
{
/*for(ii=1;ii<=i;ii++)
{
sb+=a[ii].b;
sq+=a[ii].q;
}*/
if(i>0)
{
sb+=a[i].b;
sq+=a[i].q;
}
/*for(ii=i+1;ii<=N;ii++)
{
sa+=a[ii].a;
sk+=a[ii].k;
}*/
sa=SA;
sk=SK;
SA-=a[i+1].a;
SK-=a[i+1].k;
if(sa+sb!=0)
{
v=(L-(sk+sq))/(sa+sb);
if(v<=a[i+1].v || i==N)
{
if(v>a[i].v || i==0)
{
ans.pb(v);
}
}
}
// cout<<L<<"\n";
// cout<<sk<<" "<<sq<<" "<<sk+sq<<" "<<"\n";
//cout<<sa<<" "<<sb<<" "<<sa+sb<<" "<<"\n\n\n";
}
fout<<ans.size()<<"\n";
vector<double>::iterator it;
setprecision(6);
for(it=ans.begin();it<ans.end();it++)
{
fout<<fixed<<*it<<"\n";
}
fin.close();
}
int main()
{
cit();
fout.close();
return 0;
}
http://ideone.com/nr9jp
http://ideone.com/Sg8si
« O generatiune decazuta nu e capabila de recunoastere nici binele, nici adevarul. Binele unde-l gaseste il uraste – de acolo preponderenta elementului rau. Adevarul nu e capabila de a-l recunoaste. » Mihai Eminescu
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.