Submission #597801

#TimeUsernameProblemLanguageResultExecution timeMemory
597801OzyStrange Device (APIO19_strange_device)C++17
65 / 100
606 ms33396 KiB
#include <iostream> #include <bits/stdc++.h> using namespace std; #define lli unsigned long long int #define debug(a) cout << #a << " = " << a << endl #define debugsl(a) cout << #a << " = " << a << ", " #define rep(i,a,b) for(int i = (a); i <= (b); i++) #define repa(i,a,b) for(int i = (a); i >= (b); i--) #define LIM (1ll << 60) lli a,b,n,cont,x,y,mult,ini,res,k; vector<pair<lli,lli> > orden; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> a >> b; k = __gcd(a,b+1); //debug(k); k = a/k; if (LIM/k < b) mult = LIM; else mult = k*b; rep(i,1,n) { cin >> x >> y; if (x == y) { x %= mult; orden.push_back({x,1}); orden.push_back({x,2}); continue; } x %= mult; y %= mult; if (x >= y) { orden.push_back({0,1}); orden.push_back({mult-1,2}); } orden.push_back({x,1}); orden.push_back({y,2}); } sort(orden.begin(), orden.end()); ini = -1; cont = 0; res = 0; for (auto act:orden) { if (act.second == 1) { cont++; if (ini == -1) ini = act.first; } else cont--; if (cont == 0) { res += (act.first - ini) + 1; ini = -1; } } cout << res; }

Compilation message (stderr)

strange_device.cpp: In function 'int main()':
strange_device.cpp:7:39: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
    7 | #define rep(i,a,b) for(int i = (a); i <= (b); i++)
      |                                       ^
strange_device.cpp:28:5: note: in expansion of macro 'rep'
   28 |     rep(i,1,n) {
      |     ^~~
strange_device.cpp:58:21: warning: comparison of integer expressions of different signedness: 'long long unsigned int' and 'int' [-Wsign-compare]
   58 |             if (ini == -1) ini = act.first;
      |                 ~~~~^~~~~
#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...