E题疑惑
#include<bits/stdc++.h> #define xs first #define ys second #define int long long using namespace std; typedef pair<int,int> PII; typedef pair<int,pair<int,int>> PIPII; const int N=2e5+10,mod=1e9+7; int a[N]; int T,n,m,k; void solve() { cin>>n>>m; int sum=0,mini=1e18; for(int i=1;i<=n;i++)cin>>a[i],sum+=a[i],mini=min(mini,a[i]); int i=1; int ans=0; ans+=m/sum*n; m%=sum; while(m>=mini){ if(m>=a[i]){ ans++; m-=a[i]; } i++; if(i==n+1)i=1; if(m<mini)break; } cout<<ans; } signed main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); T=1; // cin>>T; while(T--)solve(); }
E题这样写不一定可以过吧,假如只有最后一个是1e9,其他全是1,然后手上的钱1e18,那应该T了吧