Pagini recente » Cod sursa (job #1327933) | Cod sursa (job #2303450) | Cod sursa (job #488860) | Cod sursa (job #1698603) | Cod sursa (job #28461)
Cod sursa(job #28461)
#include <stdio.h>
int g,w;long long en,cost;
struct generator
{
int e,c;
};
generator ge[1001];
void citeste(){
FILE *f=fopen("energii.in","rt");
fscanf(f,"%d %d",&g,&w);
for(int i=1;i<=g;i++){
fscanf(f,"%d %d",&ge[i].e,&ge[i].c);
}
}
void ordoneaza(){
int i,j,aux;
for(i=1;i<=g;i++){
for(j=i+1;j<=g;j++){
if(ge[i].c>ge[j].c){
aux=ge[i].c;ge[i].c=ge[j].c;ge[j].c=aux;
aux=ge[i].e;ge[i].e=ge[j].e;ge[j].e=aux;
}
else if(ge[i].c==ge[j].c){
if(ge[i].e>ge[j].e){
aux=ge[i].e;ge[i].e=ge[j].e;ge[j].e=aux;
aux=ge[i].c;ge[i].c=ge[j].c;ge[j].c=aux;
}
}
}
}
}
void rezolva(){
int i=1,j=1;
while(en<=w){
en+=ge[i].e;cost+=ge[i].c;
i++;
}
i--;
for(j=i;j>=1;j--){
if(en-ge[j].e>=w) {
en-=ge[j].e;cost-=ge[j].c;
}
}
}
void scrie(){
FILE *g=fopen("energii.out","wt");
fprintf(g,"%lld",cost);
}
int main(){
citeste();
ordoneaza();
rezolva();
scrie();
return 0;
}