# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
358992 | 2021-01-26T08:41:54 Z | jesus_coconut | Fancy Fence (CEOI20_fancyfence) | C++17 | 3 ms | 364 KB |
#include <bits/stdc++.h> using namespace std; using ll = long long; int const MOD = 1e9 + 7; int n; vector<ll> h, w; void read() { cin >> n; h.resize(n); w.resize(n); for (auto &a : h) cin >> a; for (auto &a : w) cin >> a; } ll subRec(int i) { ll ret = h[i] * (h[i] + 1) / 2; ret %= MOD; ret *= (w[i] * (w[i] + 1) / 2) % MOD; ret %= MOD; return ret; } ll modsub(ll a, ll b) { ll ret = (a - b) % MOD; if (ret < 0) ret += MOD; return ret; } ll calc(pair<ll, ll> p) { ll ret = (p.first * p.first) % MOD; ret *= p.second; ret %= MOD; return ret; } void solve() { read(); ll ans = 0; ll carry = 0; stack<pair<ll, ll>> stck; for (int i = 0; i < n; ++i) { ans += subRec(i); ans %= MOD; ll pushDown = 0; while (!stck.empty() && stck.top().first > h[i]) { carry = modsub(carry, calc(stck.top())); pushDown += stck.top().second; pushDown %= MOD; stck.pop(); } if (!stck.empty()) { carry = modsub(carry, calc(stck.top())); stck.top().second += pushDown; stck.top().second %= MOD; carry += calc(stck.top()); carry %= MOD; } ans += (carry * w[i]) % MOD; ans %= MOD; stck.emplace(h[i], w[i]); carry += calc(stck.top()); carry %= MOD; } cout << ans << '\n'; } int main() { freopen("input1.txt", "r", stdin); ios_base::sync_with_stdio(false); cin.tie(nullptr); solve(); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 364 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 364 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 364 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 364 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 364 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 364 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 364 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |