http://codeforces.com/contest/1073/problem/D
一开始线段树和双端链表各种维护 越写越不对劲。。
其实直接暴力就好 先看逛上一圈能加就加 能买多少 再看这种情况下能逛几圈 最后取一下模就是log的复杂度了
using namespace std;
typedef long long ll;
const int maxn=2e5+10;
ll ary[maxn];
ll tot;
int n;
int main()
{
ll ans,sum,cnt;
int i;
scanf("%d%lld",&n,&tot);
for(i=1;i<=n;i++) scanf("%lld",&ary[i]);
ans=0;
while(1){
sum=0,cnt=0;
for(i=1;i<=n;i++) if(sum+ary[i]<=tot) sum+=ary[i],cnt++;
if(cnt==0) break;
ans+=(tot/sum)*cnt;
tot%=sum;
}
printf("%lld\n",ans);
return 0;
}
yi'kai