Cod sursa(job #2593027)

Utilizator eugen5092eugen barbulescu eugen5092 Data 2 aprilie 2020 19:06:03
Problema Shop Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <bits/stdc++.h>
using namespace std;

ifstream ci("shop.in");
ofstream cou("shop.out");

struct date{
    long long val;
    int nr;
};

long long l;
int n,c,k;
date v[50];
date copie[50];
long long ridlaput(int a,int b){
    long long r=1;
    while(b){
        if(b%2){
            r*=a;
        }
        a=a*a;
        b/=2;
    }
    return r;
}

bool cmp(date a,date b){
    return a.val>b.val;
}

void citire(){

    ci>>n>>c>>l;
    int i,ai,bi;
    for(i=1;i<=n;i++){
        ci>>ai>>bi;

        v[i].nr=bi;
        v[i].val=ridlaput(c,ai);
        copie[i]=v[i];
    }
    sort(v+1,v+n+1,cmp);


}

void rez(){
    int fin[50];
    int p=0,i,j;
    int nrmonezi=0;
    //cout<<l<<"\n";
    for(i=1;i<=n;i++){
        if(v[i].val*v[i].nr>=l){
            nrmonezi+=l/v[i].val;
            fin[++p]=l/v[i].val;
            l=l%v[i].val;
        }else{
            nrmonezi+=v[i].nr;
            fin[++p]=v[i].nr;
            l-=v[i].val*v[i].nr;
        }
    }
    cou<<nrmonezi<<"\n";

    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            if(copie[i].val==v[j].val){
                cou<<fin[j]<<" ";
            }
        }
    }

}

int main()
{
    citire();
    rez();
    return 0;
}