Submission #978499

#TimeUsernameProblemLanguageResultExecution timeMemory
978499batsukh2006Job Scheduling (CEOI12_jobs)C++17
100 / 100
113 ms21328 KiB
#include<iostream> #include<stdio.h> #include<math.h> #include<map> #include<string> #include<algorithm> #include<vector> #include<string.h> #include<utility> #include<set> #include<cmath> #include<queue> #include<deque> #include<functional> #include<stack> #include<limits.h> #include<iomanip> #include<unordered_map> #include<numeric> #include<tuple> #include<bitset> using namespace std; #define MOD 1000000007 #define int long long #define ss second #define ff first #define endl '\n' signed main(){ // freopen("file.in", "r", stdin); // freopen("file.out", "w", stdout); ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,d,m; cin>>n>>d>>m; vector<int> v[n+1]; for(int i=1; i<=m; i++){ int a; cin>>a; v[a].push_back(i); } int l=1,r=m; while(l<=r){ int mid=l+(r-l)/2; bool ok=1; int sum=0; for(int i=1; i<=n; i++){ sum+=v[i].size(); if((sum+mid-1)/mid-1>d) ok=0; sum-=min(sum,mid); } if(ok) r=mid-1; else l=mid+1; } queue<int> q; cout<<l<<endl; for(int i=1; i<=n; i++){ for(auto x: v[i]) q.push(x); int need=l; while(!q.empty()&&need--){ cout<<q.front()<<' '; q.pop(); } cout<<0<<endl; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...