#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pb push_back
#define inf 1e18+1e9
#define F first
#define S second
#define int long long
#define mod (int)(1e9+7)
#define maxn 1000100
#define pii pair<int,int>
#define mod2 998244353
const int maxtime=1e8;
const long double eps=1e-9;
ld dist(ld x1,ld y1,ld x2,ld y2) {
return sqrt(abs(x1-x2)*abs(x1-x2)+abs(y1-y2)*abs(y1-y2));
}
pair<char,int> a[maxn];
int c[maxn],d[maxn];
int n,vm,v2;
int get2(int sum,int x) {
for (int i=2;i<=n;i++) {
if (a[i].S-a[i-1].S<=x) {
if (a[i].F=='+') {
if (sum<vm)sum++;
}else {
if (sum>0)sum--;
}
}
}
return sum;
}
int get(int x) {
int l=0,r=vm,res=-1;
while(l<=r) {
int mid=(l+r)>>1;
int sum=get2(mid,x);
if (sum==v2) {
res=mid;
}
if (sum<=v2) {
l=mid+1;
}else {
r=mid-1;
}
}
return res;
}
void solve () {
cin>>n>>vm>>v2;
for (int i=1;i<=n;i++) cin>>a[i].F>>a[i].S;
int l=0,r=inf,t=0,v1=0;
while (l<=r) {
int mid=(l+r)>>1;
int ans=get(mid);
if (ans>-1) {
l=mid+1;
t=mid;
v1=ans;
}
else r=mid-1;
}
if (t==inf) {
cout<<"infinity";
}else {
cout<<t<<" "<<v1;
}
}
int32_t main() {
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int t=1;
// cin>>t;
for (int ii=1;ii<=t;ii++) {
solve();
// asd();
if (ii<t)cout<<"\n";
}
}
| # | 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... |