Cod sursa(job #1488339)

Utilizator margikiMargeloiu Andrei margiki Data 18 septembrie 2015 19:26:21
Problema Zebughil Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
# include <fstream>
# include <algorithm>
# define NR 1000005
using namespace std;
ifstream f("zebughil.in");
ofstream g("zebughil.out");
struct elem {
    int X, C;
}a[NR];
int i,j,n,m,x,y,stop,G;
int nr[1000];
int main ()
{
    for (int t=1; t<=3; ++t) {
        f>>n>>G;
        for (i=1; i<=n; ++i)
            f>>nr[i];

        stop=(1<<(n+1))-2;
        for (i=1; i<=stop; ++i) {
            a[i].C=10000;
            for (j=1; j<=n; ++j)
                if ((1<<j) & i) { // daca se afla in configuratie

                    int antC=a[i-(1<<j)].C, antX=a[i-(1<<j)].X;
                    if (antC+(antX+nr[j])/G < a[i].C || (antC+(antX+nr[j])/G == a[i].C && (antX+nr[j])%G<a[i].X)) {
                        a[i].C=antC+(antX+nr[j])/G;
                        a[i].X=(antX+nr[j])%G;
                    }
                }
        }
        if (a[stop].X) ++a[stop].C;
        g<<a[stop].C<<"\n";
    }

    return 0;
}