Submission #547586

#TimeUsernameProblemLanguageResultExecution timeMemory
547586LittleFlowers__Strange Device (APIO19_strange_device)C++17
0 / 100
5065 ms212 KiB
#include <algorithm> #include <bits/stdc++.h> #define ll long long #define fi first #define se second using namespace std; int v2(ll n) { int i = -1; while(n != 0) { n = n / 2; i++; } } int n, i, i1, i2, j, status = 0, idx; pair<ll, ll> in[10000001]; pair<ll, ll> out[10000001]; ll a, b, tmp, l, r, cnt; int main() { #define task "TASK" if(fopen(task".inp", "r")) { freopen(task".inp", "r", stdin); //freopen(task".out","w",stdout); } cin.tie(0)->sync_with_stdio(0); cin >> n >> a >> b; tmp = a / (__gcd(a, b + 1)); i = 0; while(i < n) { cin >> in[i].fi >> in[i].se; i++; } if(v2(tmp) + v2(b) > 60) { i = 0; tmp = 0; while(i < n) { tmp = tmp + (in[i].se - in[i].fi + 1); i++; } cout << tmp; } else { return 0; tmp = tmp * b; //cout << tmp<<endl; i = 0; j = 0; while(i < n) { if(in[i].fi / tmp == in[i].se / tmp) { out[i + j].fi = in[i].fi % tmp; out[i + j].se = in[i].se % tmp; } else if((in[i].fi / tmp) + 1 == in[i].se / tmp) { out[i + j].fi = in[i].fi % tmp; out[i + j].se = tmp - 1; j++; out[i + j].fi = 0; out[i + j].se = in[i].se % tmp; } else { status = 1; } i++; } if(status == 1) { cout << tmp; } else { idx = i + j; //cout << idx<<endl; //i=0; //while (i<idx) //{ // cout << out[i].fi <<" "<< out[i].se << endl; // i++; //} sort(out + 0, out + idx); l = out[0].fi; r = out[0].se; cnt = r - l + 1; i = 1; while(i < idx) { if(out[i].fi > out[i - 1].se) { l = out[i].fi; r = out[i].se; cnt = cnt + r - l + 1; } else { if(out[i].se <= out[i - 1].se) { } else { r = out[i].se; cnt = cnt + r - out[i - 1].se; } } i++; } cout << cnt; } } }

Compilation message (stderr)

strange_device.cpp: In function 'int v2(long long int)':
strange_device.cpp:16:1: warning: no return statement in function returning non-void [-Wreturn-type]
   16 | }
      | ^
strange_device.cpp: In function 'int main()':
strange_device.cpp:25:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |     freopen(task".inp", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#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...