Pagini recente » Cod sursa (job #1289652) | Cod sursa (job #2990631) | Cod sursa (job #869271) | Cod sursa (job #2095661) | Cod sursa (job #2133879)
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct Ob
{
double val, g, pos;
};
vector<Ob> v, res;
bool Comp(Ob o1, Ob o2)
{
return (o1.g/o1.val<o2.g/o2.val);
}
bool com(Ob o1, Ob o2)
{
return (o1.pos<o2.pos);
}
int main()
{
int N, M, i, p;
double proc;
f>>N>>M;
v.resize(N);
for(i=0;i<N;i++)
{
f>>v[i].val>>v[i].g;
v[i].pos=i;
}
sort(v.begin(), v.end(), Comp);
i=0;
while(v[i].g<=M)
{
res.push_back(v[i]);
M-=v[i].g;
i++;
}
proc=double(M)*100/v[i].g;
p=v[i].pos;
res.push_back(v[i]);
sort(res.begin(),res.end(),com);
for(i=0;i<res.size();i++)
{
g<<res[i].pos+1<<' ';
if(res[i].pos==p)g<<proc<<'\n';
else g<<"100\n";
}
f.close();
g.close();
return 0;
}