Cod sursa(job #1146140)

Utilizator TibixbAndrei Tiberiu Tibixb Data 18 martie 2014 19:00:22
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
using namespace std;
int tot, x[1003], xe, xc, s, m[100003], sol, nr, x2[100003], n, n2, i, j, valmax, ok;
ifstream in("energii.in");
ofstream out("energii.out");
int mod(int x){
    return (x>0?x:-x);
}
int main(){
    in>>n>>tot;
    sol=99999999;
    for(i=1; i<=10000; i++)
        m[i]=9999999;
    for(i=1; i<=n; i++){
        in>>xe>>xc;
        for(j=valmax; j>=1; j--){
            if(j+xe<=10000 && m[j]!=0){
                if(m[j]+xc<m[j+xe])
                    m[j+xe]=m[j]+xc;
                if(j+xe>=tot && m[j+xe]<sol){
                    sol=m[j+xe];
                    ok=1;
                }
            }
        }
        if(m[xe]>xc)
            m[xe]=xc;
        if(xe>=tot && xc<sol){
            sol=xc;
            ok=1;
        }
        valmax+=xe;
    }
    if(ok==1)
        out<<sol;
    else
        out<<"-1";
return 0;
}