Submission #249969

#TimeUsernameProblemLanguageResultExecution timeMemory
249969jeqchoStrange Device (APIO19_strange_device)C++17
10 / 100
562 ms26512 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pii; typedef vector<int> vi; typedef vector<pair<int,int>> vpi; #define FOR(i,a,b) for (int i = (a); i < (b); ++i) #define F0R(i,a) FOR(i,0,a) #define ROF(i,a,b) for (int i = (b)-1; i >= (a); --i) #define R0F(i,a) ROF(i,0,a) #define trav(a,x) for (auto& a: x) #define pb push_back #define rsz resize #define sz(x) int(x.size()) #define all(x) begin(x), end(x) #define f first #define s second ll A,B; ll gcd(ll a, ll b) { // O((log n)^2) if (b == 0) return a; return gcd(b, a % b); } ll lcm(ll a, ll b) { return (a * b) / gcd(a, b); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n>>A>>B; ll l,r; ll lcm1 = lcm(B+1,A); ll q = lcm1 / (B+1); ll maxlen = q*B; vector<pair<ll,ll>> segments; F0R(i,n) { cin>>l>>r; if(r-l+1 >= maxlen) { cout<<maxlen<<'\n'; return 0; } l %= maxlen; r %= maxlen; if(r<l) { segments.pb({0,r}); segments.pb({l,maxlen-1}); } else segments.pb({l,r}); } sort(all(segments)); bool init=0; ll ldex,rdex; ll ans=0; pair<ll,ll> seg; F0R(i,sz(segments)+1) { if(i==sz(segments)) { ans += rdex-ldex+1; break; } seg = segments[i]; if(!init) { ldex=seg.f; rdex=seg.s; init=1; } else if(seg.f==ldex) { rdex = seg.s; } else { // seg.f > ldex if(seg.f <= rdex) { rdex = seg.s; } else { ans += rdex-ldex+1; ldex=seg.f; rdex=seg.s; } } } cout<<ans<<endl; return 0; }

Compilation message (stderr)

strange_device.cpp: In function 'int main()':
strange_device.cpp:73:24: warning: 'rdex' may be used uninitialized in this function [-Wmaybe-uninitialized]
             ans += rdex-ldex+1;
                    ~~~~^~~~~
strange_device.cpp:73:24: warning: 'ldex' may be used uninitialized in this function [-Wmaybe-uninitialized]
#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...