2 条题解
-
1
#include<bits/stdc++.h> #define ll long long using namespace std; const int mn = 1e5 + 10; int main() { ll n, w[mn],m,p1=0,s1=0,s2,p2,cha=0,xh,xl; cin >> n; for (int i = 1; i <= n; i++) { cin >> w[i]; } cin >> m >> p1 >> s1 >> s2; p2 = m; w[p1] += s1; ll l=0, h=0; for (int i = 1; i <= m - 1; i++) { l += w[i] * (m - i); } for (int i = n; i >= m + 1; i--) { h += w[i] * (i - m); } if (l > h) { cha = l - h; for (int j = m + 1; j <= n; j++) { xh = (j - m) * s2 + h; if (abs(l - xh) < cha) { cha = abs(l - xh); p2 = j; } } } else if(l<h) { cha = h - l; for (int j = 1; j <= m - 1; j++) { xl = (m-j) * s2 +l; if (abs(h - xl) < cha) { cha = abs(h - xl); p2 = j; } } } cout << p2; return 0; }
-
0
#include<bits/stdc++.h> using namespace std; long long n,a[1000000],m,p,s,k,sum,ans; int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cin>>m>>p>>s>>k; for(int i=1;i<=n;i++) sum+=a[i]*(m-i); sum+=s*(m-p); ans=m+int(sum*1.0/k+0.5*(sum>0?1:-1)); if(ans>n) ans=n; if(ans<1) ans=1; cout<<ans; return 0; } ////test
- 1
信息
- ID
- 126
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 19
- 已通过
- 18
- 上传者