Submission #875593

#TimeUsernameProblemLanguageResultExecution timeMemory
875593NeroZeinBoat (APIO16_boat)C++17
31 / 100
1036 ms524288 KiB
#include "bits/stdc++.h" using namespace std; #ifdef Nero #include "Deb.h" #else #define deb(...) #endif const int md = (int) 1e9 + 7; void add(int& a, int b) { a += b; if (a >= md) a -= md; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<int> a(n), b(n), c; for (int i = 0; i < n; ++i) { cin >> a[i] >> b[i]; for (int j = a[i]; j <= b[i]; ++j) { c.push_back(j); } } sort(c.begin(), c.end()); c.resize(unique(c.begin(), c.end()) - c.begin()); vector<int> dp(n); for (int i : c) { vector<int> pd(n); for (int j = 0; j < n; ++j) { pd[j] = dp[j]; dp[j] = 0; } int s = 1; for (int j = 0; j < n; ++j) { dp[j] = pd[j]; if (a[j] <= i && b[j] >= i) { add(dp[j], s); } add(s, pd[j]); } } int ans = 0; for (int i = 0; i < n; ++i) { add(ans, dp[i]); } cout << ans << '\n'; 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...