Submission #1322891

#TimeUsernameProblemLanguageResultExecution timeMemory
1322891yerkoshMP3 Player (CEOI10_mp3player)C++20
40 / 100
374 ms2000 KiB
#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 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...