제출 #531651

#제출 시각아이디문제언어결과실행 시간메모리
53165179brueStrange Device (APIO19_strange_device)C++14
10 / 100
485 ms32424 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; int n; ll a, b; ll l[1000002], r[1000002]; int main(){ scanf("%d %lld %lld", &n, &a, &b); for(int i=1; i<=n; i++) scanf("%lld %lld", &l[i], &r[i]); if(1000000000000000000LL / a + 1 <= b){ ll ans = 0; for(int i=1; i<=n; i++) ans += r[i] - l[i] + 1; printf("%lld", ans); return 0; } if(b%a==1) a=b; else a = a*b; for(int i=1; i<=n; i++){ if(r[i] - l[i] >= a-1){ printf("%lld", a); return 0; } } vector<pair<ll, ll> > vec; for(int i=1; i<=n; i++){ if(l[i]%a <= r[i]%a) vec.push_back(make_pair(l[i]%a, r[i]%a)); else{ vec.push_back(make_pair(0, r[i]%a)); vec.push_back(make_pair(l[i]%a, a-1)); } } sort(vec.begin(), vec.end()); ll ans = 0; ll rMax = vec[0].second; ll lPnt = vec[0].first; for(int i=0; i<(int)vec.size(); i++){ rMax = max(rMax, vec[i].second); if(i<(int)vec.size()-1 && rMax < vec[i+1].first){ ans += rMax - lPnt + 1; lPnt = vec[i+1].first; } else if(i==(int)vec.size()-1){ ans += rMax - lPnt + 1; } else{ rMax = max(rMax, vec[i].second); } } printf("%lld", ans); }

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

strange_device.cpp: In function 'int main()':
strange_device.cpp:12:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     scanf("%d %lld %lld", &n, &a, &b);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
strange_device.cpp:13:34: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |     for(int i=1; i<=n; i++) scanf("%lld %lld", &l[i], &r[i]);
      |                             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...