1 条题解
-
3
#include <bits/stdc++.h> #define ll long long using namespace std; struct node{ll N,S,W;}a[101000];// N 当前房间的下一个房间 ll n,ans,p=1; int main() { cin>>n; for(ll i=1;i<=n;i++) cin>>a[i].S; for(ll i=1;i<=n;i++) a[i].N=i+1; a[n].N=1; // 记录当前房间的下一个房间的编号 for(ll i=1;i<=2*n;i++) { if(a[p].S>1) { a[a[p].N].S+=a[p].S-1; a[a[p].N].W+=a[p].S-1; a[p].S=1; } p=a[p].N; } for(ll i=1;i<=n;i++) ans+=(a[i].W*a[i].W); cout<<ans; return 0; }
- 1
信息
- ID
- 1951
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 49
- 已通过
- 33
- 上传者