제출 #1294647

#제출 시각아이디문제언어결과실행 시간메모리
12946477akStrange Device (APIO19_strange_device)C++20
100 / 100
307 ms32712 KiB
#include <cstdio> #include <vector> #include <algorithm> using namespace std; typedef long long ll; typedef pair<ll,ll> ii; int n; ll a, b, t; vector<ii> p; const ll MAXT = 1e18+18; int main(){ scanf("%d%lld%lld", &n, &a, &b); p.resize(n); for(int i=0;i<n;++i){ scanf("%lld%lld", &p[i].first, &p[i].second); } a = a/__gcd(a, b+1); if(b>MAXT/a){ //every t has a distinct pair ll sol = 0; for(auto i:p){ sol += i.second-i.first+1; } printf("%lld\n", sol); }else{ //pairs repeat every t moments ll t = a*b; vector<ii> p2; for(auto i:p){ if(i.first/t==i.second/t){ p2.push_back(ii(i.first%t, i.second%t)); }else if(i.first/t+1==i.second/t){ p2.push_back(ii(i.first%t, t-1)); p2.push_back(ii(0, i.second%t)); }else{ printf("%lld", t); return 0; } } sort(p2.begin(), p2.end()); ll s, e, sol=0; for(int i=0, j=0;i<p2.size();i=j){ s=p2[i].first;e=p2[i].second; for(;j<p2.size() && p2[j].first<=e;++j){ e=max(e, p2[j].second); } sol+=e-s+1; } printf("%lld\n", sol); } }

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

strange_device.cpp: In function 'int main()':
strange_device.cpp:18:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |     scanf("%d%lld%lld", &n, &a, &b);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
strange_device.cpp:21:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |         scanf("%lld%lld", &p[i].first, &p[i].second);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...