Submission #254838

#TimeUsernameProblemLanguageResultExecution timeMemory
254838Lawliet이상한 기계 (APIO19_strange_device)C++17
15 / 100
616 ms53540 KiB
#include <bits/stdc++.h> using namespace std; typedef long long int lli; typedef pair<lli,lli> pll; lli n, A, B; vector<pll> sweep; vector<pll> merged; int main() { scanf("%lld %lld %lld",&n,&A,&B); lli cycleSize = A/__gcd( A , B + 1 ); lli periodSize = 1000000000000000000LL; if( cycleSize <= periodSize/B ) periodSize = cycleSize*B; for(int i = 1 ; i <= n ; i++) { lli L, R; scanf("%lld %lld",&L,&R); if( R - L + 1 >= periodSize ) { printf("%lld\n",periodSize); return 0; } L %= periodSize; R %= periodSize; if( L <= R ) sweep.push_back( { L , R } ); else { sweep.push_back( { 0 , R } ); sweep.push_back( { L , periodSize - 1 } ); } } sort( sweep.begin() , sweep.end() ); lli lastR = -2; for(int i = 0 ; i < (int)sweep.size() ; i++) { if( lastR + 1 < sweep[i].first ) merged.push_back( sweep[i] ); else merged.back().second = sweep[i].second; lastR = sweep[i].second; } lli ans = 0; for(int i = 0 ; i < (int)merged.size() ; i++) ans += merged[i].second - merged[i].first + 1; printf("%lld\n",ans); }

Compilation message (stderr)

strange_device.cpp: In function 'int main()':
strange_device.cpp:14:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld %lld %lld",&n,&A,&B);
  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
strange_device.cpp:25:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld %lld",&L,&R);
   ~~~~~^~~~~~~~~~~~~~~~~~~
#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...