Submission #447073

# Submission time Handle Problem Language Result Execution time Memory
447073 2021-07-24T11:48:28 Z Yahli Fancy Fence (CEOI20_fancyfence) C++14
12 / 100
2 ms 332 KB
#include <bits/stdc++.h>
#define int long long

using namespace std; 
using pi = pair<int, int>; 

const int mod = 1e9+7; 
const int inv4 = 25e7+2; 

int calc(int a, int b){
    return ((a*(a+1)%mod)*(b*(b+1)%mod)%mod)*inv4%mod;
}

int req_solve(const vector<pi> & data, int n, int floor){
    if (n == 0) return 0; 

    //find the minimum: 
    int ind = 0, w = 0; 
    for (int i = 0; i < n; ++i){
        if (data[i].first < data[ind].first) ind = i; 
        w += data[i].second; 
    } 

    int res = (calc(data[ind].first, w) - calc(floor, w) + mod) % mod;
    
    vector<pi> next; 
    for (int i = 0; i < n; ++i){
        if (data[i].first == data[ind].first){
            res = (req_solve(next, next.size(), data[ind].first) + res) % mod; 
            next.resize(0); 
        }
        else next.push_back(data[i]);
    }
    return (req_solve(next, next.size(), data[ind].first) + res) % mod; 
}

int32_t main(){
    int n; cin >> n;
    vector<pi> data(n); 
    for (int i = 0; i < n; ++i) cin >> data[i].first; 
    for (int i = 0; i < n; ++i) cin >> data[i].second; 
    cout << req_solve(data, n, 0); 
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Incorrect 2 ms 332 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
# 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 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 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 0 ms 204 KB Output is correct
2 Incorrect 2 ms 332 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Incorrect 2 ms 332 KB Output isn't correct