제출 #742760

#제출 시각아이디문제언어결과실행 시간메모리
742760speedyArda이상한 기계 (APIO19_strange_device)C++14
100 / 100
2814 ms169464 KiB
#include "bits/stdc++.h" using namespace std; using ll = long long; const int MAXN = 2e6+5; map<ll, bool> visited; vector< pair<ll, ll> > imp; ll n, a, b; ll _gcd(ll x, ll y) { if(x < y) swap(x, y); if(y == 0) return x; return _gcd(y, x % y); } int main() { cin >> n >> a >> b; ll sum = 0; ll big = 1; map<pair<ll, ll>, bool> used; ll time = 0; ll gcd_val = _gcd(a, (b+1LL)); if(2e18 / b * gcd_val < a) { big = 2e18; } else big = a * b / gcd_val; for(int i = 1; i <= n; i++) { ll f, s; cin >> f >> s; if(s - f >= big - 1) { imp.push_back({0, 1}); imp.push_back({big - 1, 2}); } else { if(f % big <= s % big) { imp.push_back({f % big, 1}); imp.push_back({s % big, 2}); } else { imp.push_back({0, 1}); imp.push_back({s % big, 2}); imp.push_back({f % big, 1}); imp.push_back({big - 1, 2}); } } } // cout << seg[0].sum << "\n"; sort(imp.begin(), imp.end()); ll cnt = 0; ll ans = 0; ll last = -1; for(pair<ll, ll> e : imp) { //cout << ans << " " << cnt << " " << last << "\n"; if(last != -1 && cnt > 0) { ans += e.first - last; if(!visited[last]) { ans++; visited[last] = true; } visited[e.first] = true; } if(e.second == 1) { cnt++; last = e.first; } else { cnt--; last = e.first; } } cout << ans << "\n"; }

컴파일 시 표준 에러 (stderr) 메시지

strange_device.cpp: In function 'int main()':
strange_device.cpp:21:8: warning: unused variable 'sum' [-Wunused-variable]
   21 |     ll sum = 0;
      |        ^~~
strange_device.cpp:24:8: warning: unused variable 'time' [-Wunused-variable]
   24 |     ll time = 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...