Submission #1087028

#TimeUsernameProblemLanguageResultExecution timeMemory
1087028alexander707070Strange Device (APIO19_strange_device)C++14
100 / 100
353 ms69088 KiB
#include<bits/stdc++.h> #define MAXN 1000007 using namespace std; const long long inf=1e18+7; int n; pair<long long,long long> p[MAXN]; long long A,B; vector< pair<long long,long long> > v; long long ans,last; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>A>>B; long long cycle=A/__gcd(A,B+1); if(cycle>inf/B)cycle=inf; else cycle*=B; for(int i=1;i<=n;i++){ cin>>p[i].first>>p[i].second; if(p[i].second-p[i].first+1>=cycle){ cout<<cycle<<"\n"; return 0; } p[i].first%=cycle; p[i].second%=cycle; if(p[i].first<=p[i].second){ v.push_back({p[i].first,p[i].second}); }else{ v.push_back({0,p[i].second}); v.push_back({p[i].first,cycle-1}); } } sort(v.begin(),v.end()); last=-1; for(int i=0;i<v.size();i++){ ans+=max(0LL , v[i].second-max(v[i].first-1,last)); last=max(last,v[i].second); } cout<<ans<<"\n"; return 0; }

Compilation message (stderr)

strange_device.cpp: In function 'int main()':
strange_device.cpp:48:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |     for(int i=0;i<v.size();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...