제출 #982999

#제출 시각아이디문제언어결과실행 시간메모리
982999vjudge1이상한 기계 (APIO19_strange_device)C++17
15 / 100
245 ms53068 KiB
#include <time.h> #include <cstdlib> #include <stack> #include <numeric> #include <unordered_map> #include <unordered_set> #include <iomanip> #include <map> #include <set> #include <iterator> #include <deque> #include <queue> #include <sstream> #include <array> #include <string> #include <tuple> #include <chrono> #include <cassert> #include <cstdio> #include <cstring> #include <list> #include <iostream> #include <vector> #include <cmath> #include <algorithm> #include <bitset> #define ll long long using namespace std; ll n, A, B; ll l[1000005], r[1000005], sum = 0; set<pair<ll, ll>> st; int main(){ ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); cin >> n >> A >> B; for(int i = 1; i <= n; i++){ cin >> l[i] >> r[i]; sum += (r[i] - l[i] + 1); } if(sum <= 1e6){ for(int i = 1; i <= n; i++){ for(ll j = l[i]; j <= r[i]; j++){ ll x = (j + j / B) % A, y = (j % B); st.insert({x, y}); } } cout << int(st.size()) << "\n"; return 0; } if(n == 1){ ll x = (l[1] + l[1] / B) % A; if(l[1] + B <= r[1]){ ll num = l[1] + B; ll y = (num + num / B) % A; if(x == y){ cout << B << "\n"; return 0; } ll d = abs(x - y); ll ans = gcd(d, A); ll rg = l[1] + ans * B - 1; cout << min(r[1], rg) - l[1] + 1 << "\n"; } else{ cout << r[1] - l[1] + 1 << "\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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...