Submission #394971

# Submission time Handle Problem Language Result Execution time Memory
394971 2021-04-27T14:38:30 Z Pichon5 Fancy Fence (CEOI20_fancyfence) C++17
0 / 100
2 ms 204 KB
#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 int
#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;
ll bin(ll x){
    return ((x*(x+1))/2)%MOD;
}
ll T(ll x,ll y){
    if(x==0 or y==0)return 0;
    return (bin(x)%MOD*bin(y)%MOD)%MOD;
}
int main()
{ 
    ll n,x;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>x;
        h.pb(x);
    }
    ll sum=0;
    for(int i=0;i<n;i++){
        cin>>x;
        sum+=x;sum%=MOD;
        w.pb(x);
    }
    ll res=T(1,sum);
    sum=0;
    for(int i=0;i<n;i++){
        if(h[i]==2){
            sum+=w[i];
        }else{
            res=(res+2*T(sum,1))%MOD;
            sum=0;
        }
    }
    res=(res+2*T(sum,1))%MOD;
    cout<<res<<endl;
    
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 204 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 204 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 204 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 2 ms 204 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 204 KB Output isn't correct