Submission #405037

#TimeUsernameProblemLanguageResultExecution timeMemory
405037A_DStrange Device (APIO19_strange_device)C++14
65 / 100
604 ms72388 KiB
#include <bits/stdc++.h> #define int long long #define ii pair<int,int> #define F first #define S second #define du long double using namespace std; const int N=1e6+100; ii a[N]; vector<int> l; vector<int> r; vector<ii> b; set<ii> st; void solve() { int n,A,B,m=1e18+10; cin>>n>>A>>B; B++; du aa=A; du bb=B; du sum=aa*bb; du q=__gcd(A,B); du lcm=sum/q; lcm/=B; lcm*=B-1; if(lcm<=1e18){ m=lcm; } // cout<<m<<endl; for(int i=1;i<=n;i++){ scanf("%lld",&a[i].F); scanf("%lld",&a[i].S); a[i].F%=m; a[i].S%=m; if(a[i].S<a[i].F){ b.push_back({a[i].F,m-1}); b.push_back({(int)0,a[i].S}); } else{ b.push_back({a[i].F,a[i].S}); } } sort(b.begin(),b.end()); l.push_back(b[0].F); r.push_back(b[0].S); for(int i=1;i<b.size();i++){ int ll=l.back(); int rr=r.back(); if(!(ll>b[i].S||rr<b[i].F)){ l.pop_back(); r.pop_back(); l.push_back(min(ll,b[i].F)); r.push_back(max(rr,b[i].S)); } else{ l.push_back(b[i].F); r.push_back(b[i].S); } } int ans=0; for(int i=0;i<l.size();i++){ //cout<<l[i]<<" "<<r[i]<<endl; ans+=r[i]-l[i]+1; } cout<<ans<<endl; } main() { int t=1; // cin>>t; while(t--)solve(); }

Compilation message (stderr)

strange_device.cpp: In function 'void solve()':
strange_device.cpp:47:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |     for(int i=1;i<b.size();i++){
      |                 ~^~~~~~~~~
strange_device.cpp:62:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |     for(int i=0;i<l.size();i++){
      |                 ~^~~~~~~~~
strange_device.cpp: At global scope:
strange_device.cpp:68:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   68 | main()
      | ^~~~
strange_device.cpp: In function 'void solve()':
strange_device.cpp:32:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |         scanf("%lld",&a[i].F);
      |         ~~~~~^~~~~~~~~~~~~~~~
strange_device.cpp:33:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |         scanf("%lld",&a[i].S);
      |         ~~~~~^~~~~~~~~~~~~~~~
#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...