Submission #252057

#TimeUsernameProblemLanguageResultExecution timeMemory
252057jeqchoStrange Device (APIO19_strange_device)C++17
10 / 100
727 ms29688 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 // solved subtask 4 and 5 ll A,B; ll gcd(ll a, ll b) { // O((log n)^2) if (b == 0) return a; return gcd(b, a % b); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n>>A>>B; ll l,r; ll q = A / gcd(A,B+1); ll maxlen = q*B; vector<pair<ll,ll>> segments; F0R(i,n) { cin>>l>>r; if(r-l >= maxlen) { FOR(j,i+1,n)cin>>l>>r; cout<<maxlen<<endl; 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:70:24: warning: 'rdex' may be used uninitialized in this function [-Wmaybe-uninitialized]
             ans += rdex-ldex+1;
                    ~~~~^~~~~
strange_device.cpp:70: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...