Submission #649764

#TimeUsernameProblemLanguageResultExecution timeMemory
649764ToroTNStrange Device (APIO19_strange_device)C++14
65 / 100
472 ms16856 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define X first #define Y second #define pb push_back ll n,a,b,x,y,md,cnt=0,mx=-1,l,r,di; set<pair<ll,ll> > s; vector<pair<ll,ll> > v; int main() { scanf("%lld%lld%lld",&n,&a,&b); /*for(int i=1;i<=100;i++) { printf("%d %d %d\n",i,(i+i/b)%a,i%b); }*/ //printf("%d\n",s.size()); di=a/__gcd(b+1,a); if(di>1e18/b) { md=1e18; }else { md=di*b; } for(int i=1;i<=n;i++) { scanf("%lld%lld",&x,&y); x%=md; y%=md; if(x<=y) { v.pb({x,y}); }else { v.pb({x,md-1}); v.pb({0,y}); } } sort(v.begin(),v.end()); for(int i=0;i<v.size();i++) { l=v[i].X; r=v[i].Y; if(l>mx) { cnt+=(r-l+1); mx=r; }else { if(r>mx) { cnt+=r-mx; mx=r; } } } printf("%lld\n",cnt); }

Compilation message (stderr)

strange_device.cpp: In function 'int main()':
strange_device.cpp:41: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]
   41 |     for(int i=0;i<v.size();i++)
      |                 ~^~~~~~~~~
strange_device.cpp:12:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     scanf("%lld%lld%lld",&n,&a,&b);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
strange_device.cpp:28:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |         scanf("%lld%lld",&x,&y);
      |         ~~~~~^~~~~~~~~~~~~~~~~~
#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...