Submission #394993

#TimeUsernameProblemLanguageResultExecution timeMemory
394993Pichon5Fancy Fence (CEOI20_fancyfence)C++17
0 / 100
20 ms316 KiB
#include<bits/stdc++.h> #define lcm(a,b) (a/__gcd(a,b))*b #define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define ll long long #define vi vector<int> #define vll vector<ll> #define pb push_back #define F first #define S second #define mp make_pair //salida rapida "\n" //DECIMALES fixed<<sp(n)<<x<<endl; //gcd(a,b)= ax + by //lCB x&-x //set.erase(it) - ersases the element present at the required index//auto it = s.find(element) //set.find(element) - iterator pointing to the given element if it is present else return pointer pointing to set.end() //set.lower_bound(element) - iterator pointing to element greater than or equal to the given element //set.upper_bound(element) - iterator pointing to element greater than the given element // | ^ //__builtin_popcount(x) using namespace std; const ll MOD=1e9+7; vll h,w; long long bin(long long x){ x %= MOD; return ((x*(x+1))/2)%MOD; } long long T(long long x, long long y){ return (bin(x)*bin(y))%MOD; } int main() { ll n,x; cin>>n; for(int i=0;i<n;i++){ cin>>x; h.pb(x); } ll res=0; for(int i=0;i<n;i++){ cin>>x; w.pb(x); res=(res+T(h[i],w[i]))%MOD; } for(int i=0;i<n;i++){ ll H=h[i]; ll W=w[i]; for(int l=i+1;l<n;l++){ H=min(H,h[l]); W=(W+w[l])%MOD; res=(res+T(H,W))%MOD; res=(res-T(H,W-w[i]))%MOD; res=(res-T(H,W-w[l]))%MOD; res=(res-T(H,W-w[i]-w[l]))%MOD; } } cout<<res<<endl; 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...