Submission #1255330

#TimeUsernameProblemLanguageResultExecution timeMemory
1255330M_SH_OStrange Device (APIO19_strange_device)C++20
10 / 100
271 ms16936 KiB
#include <bits/stdc++.h> //#include "rainbow.h" #define ll long long #define ll1 long long #define ull unsigned long long #define dou long double #define str string #define vll vector<ll> #define vi vector<int> #define pll pair<ll, ll> #define vpll vector<pll> #define vbool vector<bool> #define vstr vector<str> #define vvll vector<vll> #define pb push_back #define pf push_front #define endl "\n" #define fr first #define se second // #define sortcmp(a) sort(a.begin(), a.end(), cmp) #define sort(a) sort(a.begin(), a.end()) #define reverse(a) reverse(a.begin(), a.end()) #define speed ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0) #define ordered_set tree<ll, null_type, less_equal<ll>, rb_tree_tag, tree_order_statistics_node_update> using namespace std; //using namespace __gnu_pbds; const ll INF = 1e19; const int lg = 20; mt19937 rng(time(0)); ll randll(ll l, ll r){ return uniform_int_distribution<ll>(l, r)(rng); } int main(){ speed; ll n, a, b; cin >> n >> a >> b; set<pll> s; ll x = max(b, a-a/b); ll res = 0; vpll v; //cout << INF << endl; for(int i = 0; i < n; i ++){ ll l, r; cin >> l >> r; if(INF/a < b){ res += r-l+1; continue; } else{ if(r-l+1 >= a*b){ cout << a*b << endl; return 0; } v.pb({l%(a*b), r%(a*b)}); if(v.back().se < v.back().fr){ pll p = v.back(); v.pop_back(); v.pb({p.fr, a*b-1}); v.pb({0, p.se}); } } /*for(auto j : v){ cout << j.fr << ' ' << j.se << endl; } cout << endl;*/ } sort(v); if(res != 0) cout << res << endl; else{ ll l = v[0].fr, r = v[0].se; for(int i = 0; i < v.size(); i ++){ //cout << v[i].fr << ' ' << v[i].se << endl; if(v[i].fr <= r) r = max(r, v[i].se); else{ res += r-l+1; l = v[i].fr, r = v[i].se; } } res += r-l+1; cout << res << endl; } }

Compilation message (stderr)

strange_device.cpp:30:16: warning: overflow in conversion from 'double' to 'long long int' changes value from '1.0e+19' to '9223372036854775807' [-Woverflow]
   30 | const ll INF = 1e19;
      |                ^~~~
#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...