Submission #571038

#TimeUsernameProblemLanguageResultExecution timeMemory
571038elesisJob Scheduling (CEOI12_jobs)C++14
80 / 100
475 ms45420 KiB
#include<bits/stdc++.h> using namespace std; #define fast ios_base::sync_with_stdio(false);cin.tie(0); #define int long long #define pii pair<int,int> #define ff first #define ss second /* int binpow(int a,int b,int m) { a %= m; int res = 1; while(b>0) { if (b&1) { res=res*a%m; } a=a*a%m; b>>=1; } return res; } */ int N,M,D; pair<bool, vector<vector <int>>> ok(vector<pii> &arr, int x) { vector <vector <int>> nub(N); int job=0; for(int i=1;i<=N;i++) { for(int j=0;j<x;j++) { if(arr[job].ff>i) { break; } if(arr[job].ff+D>=i) { nub[i-1].push_back(arr[job].ss); job++; } else { return {false,nub}; } if(job==M) { return {true,nub}; } } } return {false,nub}; } void solve() { cin>>N>>D>>M; int ans; vector <pii> arr(M); for(int i=0;i<M;i++) { cin>>arr[i].first; arr[i].second=i+1; } sort(arr.begin(),arr.end()); vector <vector <int>> res; int lo=1,hi=M; while(lo<hi) { int mid=(lo+hi)/2; pair <bool,vector <vector <int>>> ef=ok(arr,mid); if(ef.ff) { ans=mid; res=ef.ss; hi=mid; } else { lo=mid+1; } } cout << lo << "\n"; for(int i=0;i<N;i++) { for(auto &it:res[i]) { cout << it << " " ; } cout << 0 << "\n"; } } signed main() { fast solve(); //cout << "time taken" << " " << time_taken << "\n"; }

Compilation message (stderr)

jobs.cpp: In function 'void solve()':
jobs.cpp:57:13: warning: variable 'ans' set but not used [-Wunused-but-set-variable]
   57 |         int ans;
      |             ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...