#include #include #include #include #include #include #include using namespace std; /* 正解してたら匿名でも問題投稿ができる(実現度さらにアップ)!!! %I64dが通らない、 */ int cst[101]; int idx[101]; struct smallercost{ bool operator()(const int &a, const int &b){ if(cst[a]!=cst[b])return cst[a] sm; for(int i=1;i=cst[i])sm.push_back(i); long long csts[101]={cst[0]}; int minidx=0; for(int i=1;idcsts[i])mincst=dcsts[i],minidx=i; } /*int uid=0; while(uid+1csts[uid+1])uid++; */ v-=n; if(v<=0){ printf("%lld\n",sc);return 0; } else if(idx[0]==0){ printf("%lld\n",v*cst[0]+sc);return 0; } long long minc=v*csts[0],mcs; long long ans; for(int i=1;imcs)minc=mcs; //printf("%d\n",(int)mcs); } } printf("%lld",minc+sc); return 0; }