제출 #1162294

#제출 시각아이디문제언어결과실행 시간메모리
1162294PikachudoraEHEJob Scheduling (CEOI12_jobs)C++20
0 / 100
226 ms17540 KiB
#include<bits/stdc++.h> using namespace std; const int N = 1e6+5; int mem[N];vector<int>a;int n,d,m,ma2=0; bool chk(int vv){ //cout<<"This is vv : "<<vv<<"\n"; int khang = 1; int v = vv; for(int i=1;i<=n;i++){ //cout<<i<<"\n"; v=vv; if(khang<i-d){ return false; } while(v>0){ if(mem[khang]<=v){ v-=mem[khang]; khang++; //cout<<"khang = "<<khang<<"\n"; if(v<0)break; if(khang>i){ break; } } else{ mem[khang]-=v; break; } } } if(khang>n)return true; return false; } int main(){ ios_base::sync_with_stdio(0);cin.tie(0); cin>>n>>d>>m;int ma = 0; a.resize(m); for(int i=0;i<m;i++){ cin>>a[i]; mem[a[i]]++; ma=max(ma,mem[a[i]]); ma2=max(ma2,a[i]); } int l=1,r=ma; while(l<r){ int mid = (l+r)/2; if(chk(mid)){ r=mid; } else l = mid+1; } cout<<l<<"\n"; priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> q; for(int i=1;i<=m;i++){ q.push({a[i-1],i}); } bool can=true; for(int i=1;i<=n;i++){ int dd=0; while(!q.empty() && q.top().first<=i && dd<l){ cout << q.top().second << " "; q.pop(); dd++; } cout << "0\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...