Cod sursa(job #2073111)

Utilizator valentin50517Vozian Valentin valentin50517 Data 22 noiembrie 2017 18:34:37
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>
#define NMAX 10001000
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

ll N,C,L,P[40],RS[50],rs;
pair< ll , pll > A[50];
int main(){
	ifstream cin("shop.in");
	ofstream cout("shop.out");

    ios_base::sync_with_stdio(0);cin.tie(0);
    cin >> N >> C >> L;
    
    P[0]=1;
    for(int i = 1;i<35;i++) P[i]=min(P[i-1]*C,L+1);
    
    for(int i = 0;i<N;i++){
        cin >> A[i].x >> A[i].y.x;
        A[i].y.y = i;
        A[i].x*=-1;
    }
    
    sort(A,A+N);
    
    for(int i = 0;i<N;i++){
        A[i].x *= -1;
        if(P[A[i].x] <= L){
            RS[A[i].y.y]=(min(L/P[A[i].x],A[i].y.x)); 
            L-= RS[A[i].y.y]*P[A[i].x];
            rs+=RS[A[i].y.y];
        }
    }
    
    cout << rs << '\n';
    for(int i = 0;i<N;i++) cout << RS[i] << ' '; 
    return 0;
}