Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- struct euei
- {
- //struct euei a;
- int pre,val;
- }q[1000001];
- int coin[11];
- int ans[11],ans2[11];
- int main()
- {
- int min=99999999,loc;
- q[1].val=1;
- q[1].pre=0;
- int p,m,k;
- scanf("%d %d %d",&p,&m,&k);
- for(int i=0;i<k;i++)
- {
- scanf("%d",&coin[i]);
- q[coin[i]].val=1;
- q[coin[i]].pre=0;
- }
- for(int i=1;i<=m;i++)
- {
- if(q[i].val!=0)
- {
- for(int t=0;t<k;t++)
- {
- if(i+coin[t]<=m && (q[i+coin[t]].val>q[i].val+1 || q[i+coin[t]].val==0))
- {
- q[i+coin[t]].val=q[i].val+1;
- q[i+coin[t]].pre=i;
- }
- }
- }
- }
- int pay,cha,ma,mi;
- for(int i=p;i<=m;i++)
- {
- pay=q[i].val;
- cha=q[i-p].val;
- if(pay+cha<min)
- {
- min=pay+cha;
- loc=i;
- ma=pay;
- mi=cha;
- }
- }
- cha=loc-p;
- printf("%d %d\n",ma,mi);
- while(loc!=0)
- {
- for(int i=0;i<k;i++)
- if(loc-q[loc].pre==coin[i]) ans[i]++;
- loc=q[loc].pre;
- }
- for(int i=0;i<k;i++)
- {
- printf("%d ",ans[i]);
- }
- loc=cha;
- printf("\n");
- while(loc !=0)
- {
- for(int i=0;i<k;i++)
- if(loc-q[loc].pre==coin[i]) ans2[i]++;
- loc=q[loc].pre;
- }
- for(int i=0;i<k;i++)
- {
- printf("%d ",ans2[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement