# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
382448 | 2021-03-27T10:49:37 Z | talant117408 | 이상한 기계 (APIO19_strange_device) | C++17 | 2657 ms | 524292 KB |
/* Code written by Talant I.D. */ #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; using namespace std; typedef long long ll; typedef pair <int, int> pii; typedef pair <ll, ll> pll; typedef tree <pii, null_type, less <pii>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; #define precision(n) fixed << setprecision(n) #define pb push_back #define ub upper_bound #define lb lower_bound #define mp make_pair #define eps (double)1e-9 #define PI 2*acos(0.0) #define endl "\n" #define sz(v) int((v).size()) #define all(v) v.begin(),v.end() #define rall(v) v.rbegin(),v.rend() #define do_not_disturb ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define OK cout << "OK" << endl; const int mod = 1e9+7; ll mode(ll a) { a %= mod; if (a < 0) a += mod; return a; } ll subt(ll a, ll b) { return mode(mode(a)-mode(b)); } ll add(ll a, ll b) { return mode(mode(a)+mode(b)); } ll mult(ll a, ll b) { return mode(mode(a)*mode(b)); } ll binpow(ll a, ll b) { ll res = 1; while (b) { if (b&1) res = mult(res, a); a = mult(a, a); b >>= 1; } return res; } void usaco(string s) { freopen((s+".in").c_str(), "r", stdin); freopen((s+".out").c_str(), "w", stdout); } ll n, a, b; ll A(ll x) { return (x+x/b)%a; } ll B(ll x) { return x%b; } int main() { do_not_disturb //~ usaco("dirtraverse"); ll sum = 0; cin >> n >> a >> b; vector <pll> v(n), segs; for (auto &to : v) cin >> to.first >> to.second; for (auto to : v) sum += (to.second-to.first+1); if (sum >= 1e6+7) { set <pll> st; for (auto to : v) { for (ll j = to.first; j <= to.second; j++) { st.insert(mp((j+j/b)%a, j%b)); } } cout << sz(st) << endl; } else if (b == 1) { for (auto to : v) { if (A(to.first) <= A(to.second)) { segs.pb(mp(A(to.first), A(to.second))); } else { segs.pb(mp(A(to.first), a-1)); segs.pb(mp(0ll, A(to.second))); } } sort(all(segs)); vector <pll> fin; for (auto to : segs) { if (sz(fin) == 0 || fin.back().second < to.first) fin.pb(to); else fin.back().second = max(fin.back().second, to.second); } ll ans = 0; for (auto to : fin) ans += to.second-to.first+1; cout << ans << endl; } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Incorrect | 5 ms | 492 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Runtime error | 2657 ms | 524292 KB | Execution killed with signal 9 |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Incorrect | 1 ms | 364 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 364 KB | Output is correct |
2 | Correct | 602 ms | 80748 KB | Output is correct |
3 | Runtime error | 2552 ms | 524292 KB | Execution killed with signal 9 |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 364 KB | Output is correct |
2 | Correct | 602 ms | 80748 KB | Output is correct |
3 | Runtime error | 2552 ms | 524292 KB | Execution killed with signal 9 |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 364 KB | Output is correct |
2 | Correct | 602 ms | 80748 KB | Output is correct |
3 | Runtime error | 2552 ms | 524292 KB | Execution killed with signal 9 |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Runtime error | 1933 ms | 524292 KB | Execution killed with signal 9 |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Incorrect | 5 ms | 492 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |