Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream cin("butoi.in");
- ofstream cout("butoi.out");
- int v[10],gal[10],aux[10];
- long long vd[100000];
- int main()
- {
- int cer,nrg,maxop,p,rasp,min1,cnt,s,j,stg;
- long long cb,put,i,cntd;
- cin>>cer;
- cin>>cb>>nrg>>maxop>>p;
- min1=99999999;
- if(cer<3){
- for(i=0;i<nrg;i++){
- cin>>gal[i];
- }
- cntd=s=0;
- put=1;
- for(i=0;i<=nrg+10;i++){
- put*=maxop;
- }
- for(i=0;i<put;i++){
- v[0]++;
- j=0;
- while(j<nrg-1 && v[j]==maxop+1 ){
- v[j]=0;
- v[j+1]++;
- j++;
- }
- cnt=s=stg=0;
- for(j=0;j<nrg;j++){
- if(v[j]!=maxop)
- stg=1;
- s+=v[j]*gal[j];
- cnt+=v[j];
- }
- if(s==cb){
- cntd++;
- if(cnt<min1){
- min1=cnt;
- for(j=0;j<nrg;j++)
- aux[j]=v[j];
- }
- }
- if(stg==0)
- break;
- }
- if(cer==1){
- cout<<cntd;
- }else{
- for(j=0;j<nrg;j++)
- cout<<aux[j]<<" ";
- }
- }else{
- cin>>vd[0];
- for(i=1;i<nrg;i++){
- cin>>vd[i];
- vd[i]+=vd[i-1];
- }
- i=0;
- rasp=-1;
- while(i<nrg-p+1){
- if(i==0){
- if(cb%vd[p-1]==0 && cb/vd[p-1]<min1){
- rasp=i+1;
- min1=cb/vd[p-1];
- }
- }else{
- if(cb%(vd[i+p-1]-vd[i-1])==0 && cb/(vd[i+p-1]-vd[i-1])<min1){
- rasp=i+1;
- min1=cb/(vd[i+p-1]-vd[i-1]);
- }
- }
- i++;
- }
- cout<<rasp;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement