1 条题解

  • 3
    @ 2022-12-30 16:36:25
    #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
    上传者