#include #include #include #include #include #include #include using namespace std; /* 正解してたら匿名でも問題投稿ができる(実現度さらにアップ)!!! %I64dが通らない、 作れないケースは無い? 作れないケースが無いならば、 SUM(Cn)が10^9を越えるケースは無い? サンプルは全部あってる。 */ int cst[101]; int idx[101]; struct smallercost{ bool operator()(const int &a, const int &b){ if(cst[a]!=cst[b])return cst[a]dcsts[i])mincst=dcsts[i],minidx=i; } v-=n; if(v<=0){ printf("%llu\n",sc);return 0; } else if(idx[0]==0){ printf("%llu\n",(unsigned long long)v*cst[0]+sc);return 0; } unsigned long long minc=(unsigned long long)v*csts[0],mcs; for(int i=1;imcs)minc=mcs; } } printf("%llu\n",minc+sc); return 0; }