Benzina

Time limit: 0.2s Memory limit: 16MB Input: benzina.in Output: benzina.out

Ia uite, frate! E numărul meu norocos cu săgeată!

În anul 19381938, pe faimoasa Route 6666 din America se aflau NN benzinării. Route 6666 începe din Chicago și se termină în Los Angeles, conectând cele 22 metropole americane. Benzinăriile sunt descrise prin borna de mile în dreptul căreia sunt, așa că benzinăria de pe poziția ii se află la mila DiD_i față de punctul de start, Chicago.

În ziua de 44 iulie 19381938, o mulțime de familii americane se întorc din Los Angeles (locul unde lucrează toți americanii din 19381938) pe Route 6666, pentru a petrece Ziua Independenței cu familiile lor din Chicago (locul unde locuiesc toți americanii din 19381938). Fiecare mașină este caracterizată de benzinăria în dreptul căreia se află în momentul de față. Toate familiile au o sumă de KK dolari. Guvernul taxează fiecare milă deplasată cu 11 dolar și fiecare benzinărie pe lângă care trece o mașină cu CC dolari. Așa că, dacă o mașină este în dreptul benzinăriei ii și vrea să se oprească la benzinăria jj, cu j<ij < i (mașinile merg doar înspre Chicago, nu se întorc), atunci costul plătit de o familie este DiDj+C(ij)D_i - D_j + C \cdot (i - j). Așadar, o familie poate ajunge la o anumită benzinărie doar dacă suma de KK dolari poate acoperi costul drumului.

Cerință

Franklin D. Roosevelt (președintele S.U.A. din 19381938) vă cere să calculați următoarele valori pentru a înțelege mai bine viața unui simplu american:

  1. Cea mai apropiată benzinărie de Chicago la care poate ajunge o mașină aflată inițial la benzinăria ii, pentru fiecare benzinărie din cele NN.
  2. Numărul maxim de mașini care pot alimenta cu benzină dacă, în fiecare benzinărie, poate alimenta maximum o mașină. Pentru ca o mașină să alimenteze în benzinăria ii trebuie să iși permită să ajungă până la aceasta (o mașină poate alimenta la o benzinărie dacă suma ei rămasă de bani după plătirea drumului este 0\geq 0).

Date de intrare

Pe prima linie a fișierului de intrare benzina.in se găsește TT, cerința care trebuie rezolvată.
Pe a doua linie se găsesc trei numere naturale: N,C,KN, C, K, reprezentând numărul de benzinării, taxa pentru trecerea pe lângă o benzinărie și suma de dolari pe care o deține fiecare familie.
Pe a treia linie se găsesc NN numere naturale: D1,D2,...,DND_1, D_2, ..., D_N, reprezentând distanțele la care se află cele NN benzinării față de Chicago.
Pe a patra linie se găsesc NN numere naturale: Nr1,Nr2,...,NrNNr_1, Nr_2, ..., Nr_N, reprezentând numărul de mașini care se află în dreptul fiecărei benzinării.

Date de ieșire

  • Dacă T=1T = 1, atunci pe prima linie a fișierului de ieșire benzina.out se vor găsi NN numere naturale S1,S2,...,SNS_1, S_2, ..., S_N, unde SiS_i reprezintă cea mai apropiată benzinărie de Chicago la care poate ajunge o mașină aflată inițial la benzinăria ii.
  • Dacă T=2T = 2, atunci pe prima linie a fișierului de ieșire benzina.out se va găsi un singur număr natural MM, reprezentând numărul maxim de mașini care pot alimenta cu benzină.

Restricții și precizări

  • T{1,2}T \in \{ 1, 2 \};
  • 1N200 0001 \leq N \leq 200 \ 000;
  • 0C,K1090 \leq C, K \leq 10^9;
  • 0Di1090 \leq D_i \leq 10^9;
  • 0Nri1090 \leq Nr_i \leq 10^9;
  • Di1DiD_{i - 1} \leq D_i, pentru 2iN2 \leq i \leq N;
    # Punctaj Restricții
    1 13 T=1T = 1 și N1000N \leq 1000
    2 28 T=1T = 1
    3 7 T=2T = 2 și Nri1Nr_i \leq 1
    4 29 T=2T = 2 și N1000N \leq 1000
    5 23 T=2T = 2

Exemplul 1

benzina.in

1
4 2 5
1 3 5 8
2 0 1 0

benzina.out

1 1 2 3

Explicație

T=1T = 1, deci trebuie să rezolvăm cerința 11. Sunt N=4N = 4 benzinării, taxa guvernului pentru fiecare benzinărie depășită este C=2C = 2 și suma de dolari a fiecărei familii este K=5K = 5.

  • O mașină aflată la benzinăria 11 poate ajunge la benzinăria 11.
  • O mașină aflată la benzinăria 22 poate ajunge la benzinăria 11.
  • O mașină aflată la benzinăria 33 poate ajunge la benzinăria 22.
  • O mașină aflată la benzinăria 44 poate ajunge la benzinăria 33.

Exemplul 2

benzina.in

2
4 2 5
1 3 5 8
2 0 1 0

benzina.out

2

Explicație

T=2T = 2, deci trebuie să rezolvăm cerința 22. Numărul maxim de mașini care pot fi alimentate este M=2M = 2. O soluție cu acest număr maxim este următoarea:

  • Prima mașină de la benzinăria 11 alimentează la benzinăria 11.
  • A doua mașină de la benzinăria 11 nu alimentează.
  • Mașina de la benzinăria 33 alimentează la benzinăria 33.

Se poate demonstra că numărul maxim de mașini care pot alimenta în acest caz este 22.

Log in or sign up to be able to send submissions!