제출 #1302756

#제출 시각아이디문제언어결과실행 시간메모리
1302756alex0152Job Scheduling (CEOI12_jobs)C++20
10 / 100
100 ms14912 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; const int nMax=1e6+5,MOD=1e9+7; int t,n,m,k,z,a,b,c,d,x,y,cnt,ans,rez,sum,poz,st,dr; int v[nMax]; bool ok; char ch; string s; map<int,int>mp; vector<int>adj[nMax]; bool check(int val) { int day=1; cnt=0; for(int i=1; i<=n-d; ++i) { if(i>day) day=i,cnt=0; for(auto it : adj[i]) { if(i+d<day) return 0; cnt++; if(cnt==val) day++,cnt=0; } } return 1; } int main() { ios_base::sync_with_stdio(false); cin.tie(0),cout.tie(0); cin>>n>>d>>m; for(int i=1; i<=m; ++i) cin>>v[i],adj[v[i]].push_back(i); st=1; dr=m; while(st<=dr) { int mid=st+(dr-st)/2; if(check(mid)) ans=mid,dr=mid-1; else st=mid+1; } cout<<ans<<'\n'; int day=1; cnt=0; for(int i=1;i<=n;++i) { if(i>day) cout<<0<<'\n',day=i,cnt=0; for(auto it : adj[i]) { cout<<it<<" "; cnt++; if(cnt==ans) day++,cnt=0,cout<<0<<'\n'; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...