Submission #945661

#TimeUsernameProblemLanguageResultExecution timeMemory
945661Sandarach151Fancy Fence (CEOI20_fancyfence)C++17
30 / 100
1070 ms1880 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

const int MODD = 1e9+7;
const int INV = 5e8+4;

int mult(int n){
	int temp = 1;
	temp *= (n);
	temp %= MODD;
	temp *= (n+1);
	temp %= MODD;
	temp *= INV;
	temp %= MODD;
	return temp;
}

signed main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int n;
	cin >> n;
	int h[n];
	int w[n];
	for(int i=0; i<n; i++){
		cin >> h[i];
	}
	for(int i=0; i<n; i++){
		cin >> w[i];
	}
	int ans = 0;
	for(int i=0; i<n; i++){
		int temp = mult(w[i]);
		temp %= MODD;
		temp *= mult(h[i]);
		temp %= MODD;
		ans += temp;
		ans %= MODD;
	}
	for(int i=0; i<n; i++){
		int minn = h[i];
		for(int j=i+1; j<n; j++){
			minn = min(minn, h[j]);
			int temp = w[i]*w[j];
			temp %= MODD;
			temp *= mult(minn);
			temp %= MODD;
			ans += temp;
			ans %= MODD;
		}
	}
	cout << ans << '\n';
	return 0;
}
#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...