제출 #1234964

#제출 시각아이디문제언어결과실행 시간메모리
1234964veehjFancy Fence (CEOI20_fancyfence)C++17
0 / 100
1 ms328 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define fi first #define se second #define pb push_back #define sz(a) (ll) a.size() #define all(x) (x).begin(), (x).end() #define rep(i, a, b) for(ll i=(ll)(a); i<(ll)(b); i++) #define rrep(i, a, b) for(ll i=(ll)(a); i>=(ll)(b); i--) #define vl vector<ll> #define vpll vector<pair<ll, ll>> #define vvl vector<vector<ll>> #define pll pair<ll, ll> const ll md=1e9+7; ll cnt(ll a, ll b){ ll ret=((((a+1)*(a))/2 % md) * ((((b+1)%md)*(b))/2 % md)) % md; return ret; } void f() { ll n; cin >> n; ll cntw=0; vl h(n), w(n); for(auto& u : h) cin >> u; for(auto& u : w){ cin >> u; cntw+=u; } ll ans=cnt(1, (cntw%md)); ans%=md; ll strt=-1; rep(i, 0, n){ if(h[i]==2){ strt=i; break; } } if(strt==-1){ cout << ans; return; } ll sm=w[strt]; rep(i, strt+1, n){ if(h[i]!=2){ ans+=sm*(sm+1); ans%=md; sm=0; } else { sm+=w[i]; } } ans+=sm*(sm+1); ans%=md; cout << ans; } int main() { int tc=1; while (tc--) f(); }
#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...