Submission #56443

#TimeUsernameProblemLanguageResultExecution timeMemory
56443BatrrJob Scheduling (CEOI12_jobs)C++14
0 / 100
706 ms33792 KiB
#include <bits/stdc++.h> #define ll long long #define f first #define s second #define pb push_back #define mp make_pair #define o cout<<"BUG"<<endl; #define IOS ios_base::sync_with_stdio(0); using namespace std; const ll maxn=1e6+123,inf=1e18,mod=1e9+7; int n,m,d,b[maxn]; pair<int,int>a[maxn]; bool check(int mx,bool flag){ queue<int>q; for(int i=1,j=0;i<=n;i++){ while(j<m && a[j].f==i) q.push(a[j++].s); int cur=mx; while(!q.empty() && cur){ if(b[q.front()]+d<i) return 0; if(flag) cout<<q.front()<<" "; q.pop(); cur--; } if(flag) cout<<0<<endl; } return q.empty(); } int main(){ #ifdef LOCAL freopen ("test.in", "r", stdin); #endif IOS cin>>n>>d>>m; for(int i=0;i<m;i++){ cin>>a[i].f; a[i].s=i+1; b[i+1]=a[i].f; } sort(a,a+m); int l=1,r=1e6; while(l<=r){ int m=(l+r)/2; if( !check(m,0) ) l=m+1; else r=m-1; } check(l,1); }
#Verdict Execution timeMemoryGrader output
Fetching results...