제출 #851257

#제출 시각아이디문제언어결과실행 시간메모리
851257Jawad_Akbar_JJFancy Fence (CEOI20_fancyfence)C++14
0 / 100
11 ms8080 KiB
#include <bits/stdc++.h>

using namespace std;
#define int long long
const int N = 1e5 + 10;
int r[N][3];
int w[N];
int h[N];
int mod = 1e9 + 7;
signed main(){
	int n;
	cin>>n;
	for (int i=1;i<=n;i++)
		cin>>h[i];
	int ans = 0;
	for (int i=1;i<=n;i++){
		cin>>w[i];
		int a = (w[i]*(w[i]+1))/2;
		a = a % mod;
		ans += a;
		ans %= mod;
		if (h[i]==2)
			ans += 2*a;
		ans %= mod;
	}
	for (int i=n;i>=1;i--){
		for (int j=1;j<=h[i];j++){
			r[i][j] = r[i+1][j];
			ans += (r[i][j]*j)%mod;
			ans %= mod;
			r[i][j] = r[i+1][j] + w[i];
			r[i][j] %= mod;
			// cout<<"At "<<i<<" "<<j<<" added "<<r[i][j]*j<<endl;
		}
	}
	cout<<ans<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...