Submission #320149

#TimeUsernameProblemLanguageResultExecution timeMemory
320149Karen124MP3 Player (CEOI10_mp3player)C++14
0 / 100
1074 ms1628 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/tree_policy.hpp> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; template <class T> using Tree = tree<T, null_type, less<T>, rb_tree_tag,tree_order_statistics_node_update>; #define ll long long int #define F first #define S second #define pb push_back const ll N = 1e5 + 5; const ll LOG = 30; const ll MOD = 1e9 + 7; const ll INF = 2e9 + 10; int n, Vmax, V2, a[N], t[N], ansT, ansV1 = V2; vector <int> dif; int ok(ll T, bool f){ int V1 = V2; for (int i = n; i >= 2; i--){ if (t[i] - t[i - 1] <= T){ V1 -= a[i]; } V1 = max(V1, 0); V1 = min(V1, Vmax); } for (int i = 2; i <= n; i++){ if (t[i] - t[i - 1] <= T){ V1 += a[i]; } V1 = max(V1, 0); V1 = min(V1, Vmax); } if (f) return V1; else return (V1 == V2); } int main (){ cin >> n >> Vmax >> V2; for (int i = 1; i <= n; i++){ char c; cin >> c >> t[i]; a[i] = ((c == '+') ? 1 : -1); if (i != 1) dif.pb(t[i] - t[i - 1]); } if (ok(INF, 0)) return cout << "infinity\n", 0; sort(dif.begin(), dif.end()); for (int x : dif){ if (ok(x, 0)){ ansT = x; ansV1 = ok(x, 1); } } cout << ansT << ' ' << ansV1 << '\n'; /*if (ok(INF, 0)) return cout << "infinity\n", 0; int l = 0, r = INF; while (l + 1 < r){ int mid = (l + r) / 2; if (ok(mid, 0)) l = mid; else r = mid; } cout << l << ' ' << ok(l, 1) << '\n';*/ return 0; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...