Submission #311700

#TimeUsernameProblemLanguageResultExecution timeMemory
311700mohamedsobhi777Job Scheduling (CEOI12_jobs)C++14
100 / 100
283 ms13912 KiB
#include<bits/stdc++.h> #pragma GCC optimize("-Ofast") //#pragma GCC optimize("trapv") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,popcnt,abm,mmx,avx2,tune=native") #pragma GCC optimize("-ffast-math") #pragma GCC optimize("-funroll-loops") #define I inline void #define S struct #define vi vector<int> #define vii vector<pair<int,int>> #define pii pair<int,int> #define pll pair<ll,ll> using namespace std ; using ll = long long ; using ld = long double ; const int N = 1e6 + 7 , mod = 1e9 + 7 ; const ll inf = 2e18 ; // How interesting! int n,d , m; vector<pair<int,int> > v ; bool check(int x){ int k = 0 ; for(int i = 1 ;i <= n ; ++ i){ for(int j = 0 ;j < x && k < m; ++ j){ if(i > v[k].first + d) return 0 ; if(i>=v[k].first){ k ++ ; }else break ; } } return 1; } void answer(int x){ int k = 0 ; for(int i = 0 ;i < n ; ++ i){ for(int j = 0 ;j < x && k < m ; ++ j){ cout<< v[k++].second + 1 <<" " ; } cout<<"0\n" ; } } int main(){ ios_base::sync_with_stdio(0) ; cin.tie(0) ; //freopen("in.in" , "r" , stdin) ; cin >> n >> d >> m ; for(int i = 0 ;i < m ; ++ i){ int x ; cin >> x ; v.push_back({x , i}) ; } sort(v.begin() , v.end()) ; int l = 1 , r = m ; int ans = m ; while(l<=r){ int mid = (l+r) >> 1; if(check(mid)){ ans = mid ; r = mid - 1; } else l = mid + 1; } cout<<ans <<"\n" ; answer(ans) ; return 0 ; } /* - bounds sir (segtree = 4N, eulerTour = 2N, ...) - a variable defined twice? - will overflow? - is it a good complexity? - don't mess up indices (0-indexed vs 1-indexed) - reset everything between testcases. */
#Verdict Execution timeMemoryGrader output
Fetching results...