#include <bits/stdc++.h>
// solved by bekagg
#define int long long
#define ent '\n'
#define pb push_back
#define all(x) x.begin(),x.end()
#define PRaim_bek_abi ios_base::sync_with_stdio(0);cin.tie(0);
using namespace std;
const int N = 1e5+5;
const int MOD = 1e9+7;
int n , m , k , a[N] , v = 0;
char c[N];
int check(int x){
int l = 0 , r = m , p = -1;
while(l <= r){
int md = (l + r) / 2;
int cnt = md;
for (int i = 2; i <= n; i++){
if (a[i] - a[i - 1] > x) continue;
if (c[i] == '+'){
cnt++;
cnt = min(cnt , m);
}
else {
cnt--;
cnt = max(cnt , 0ll);
}
}
if (cnt == k){
p = md;
}
if (cnt <= k){
l = md + 1;
}
else r = md - 1;
}
v = p;
return v;
}
void arkanefury228(){
cin >> n >> m >> k;
for (int i = 1; i <= n; i++){
cin >> c[i] >> a[i];
}
int l = 0 , r = 2e9 + 1, t = 0 , v1 = 0;
while(l <= r){
int md = (l + r) / 2;
if (check(md) != -1){
t = md;
v1 = v;
l = md + 1;
}
else r = md - 1;
}
if (t == 2e9 + 1){
cout << "infinity";
return;
}
cout << t << ' ' << v1;
}
signed main(){
PRaim_bek_abi
int t=1;
//cin>>t;
for (int respagold = 1; respagold <= t; respagold++) arkanefury228();
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |