Cod sursa(job #2126909)
Utilizator | Sichet Paul sichetpaul | Data | 10 februarie 2018 09:31:33 |
---|---|---|---|
Problema | Progresii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
using namespace std;
long long sum[100001],d[100001],Max,k,l,s,best,sol,rest,poz;
int main()
{ int n,i;
ifstream f("progresii.in");
ofstream g("progresii.out");
f>>n>>Max>>k>>l;
for (i=1;i<=n;++i) {
f>>poz;
d[i]=l-poz;
sum[i]=sum[i-1]+d[i]/Max+1;
}
if (sum[n]<=k) {
s=0;
for (i=1;i<=n;++i) {
best=sum[n]-sum[i];
rest=k-(s+best);
sol=d[i]/rest+1;
s+=d[i]/sol+1;
g<<sol<<'\n';
}
}
else g<<"-1"<<'\n';
return 0;
}