Submission #745879

#TimeUsernameProblemLanguageResultExecution timeMemory
745879vjudge1Fancy Fence (CEOI20_fancyfence)C++17
0 / 100
1 ms212 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

const long long MOD=1e9+7;

int main() {
	long long n;
	cin>>n;
	vector<long long> h(n);
	long long wossz=0, ans=0;
	for(long long i=0; i<n; i++){
		cin>>h[i];
	}
	vector<long long> ket;
	long long a;
	cin>>a;
	if(h[0]==2) ket.push_back(a);
	wossz+=a;
	for(long long i=1; i<n; i++){
		cin>>a;
		if(h[i]==h[i-1] && h[i]==2){
			ket.back()+=a;
		}
		else if(h[i]==2){
			ket.push_back(a);
		}
		wossz+=a;
	}
	for(long long x : ket){
		ans=ans+(x*(x+1)%MOD)%MOD;
	}
	ans=(ans+(wossz*(wossz+1)/2)%MOD)%MOD;
	cout<<ans<<"\n";
}
#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...