Submission #537126

#TimeUsernameProblemLanguageResultExecution timeMemory
537126mgl_diamondJob Scheduling (CEOI12_jobs)C++14
30 / 100
254 ms28792 KiB
#include<bits/stdc++.h> using namespace std; #define rep(i, l, r) for(int i=l; i<=r; ++i) #define fod(i, l, r) for(int i=r; i>=l; --i) #define ll long long #define ii pair<ll, ll> #define fi first #define se second template<class T> bool umax(T &a, T b) { if (a<b) { a=b; return 1; } return 0; } template<class T> bool umin(T &a, T b) { if (a>b) { a=b; return 1; } return 0; } void setIO(string name) { ios_base::sync_with_stdio(0); cin.tie(0); freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout); } const double oo=1e18; int n, d, m; vector<ii> stX(1000001); vector<int> ans[100001]; bool f(int x) { for(int day=1, j=1; day<=m && j<=n; ++day) { for(int rb=min(n, j+x-1); j<=rb; ++j) if (day>=stX[j].fi+d) return 0; } return 1; } void trace(int x) { for(int day=1, j=1; day<=m && j<=n; ++day) for(int rb=min(n, j+x-1); j<=rb; ++j) ans[day].push_back(stX[j].se); } int main() { cin.tie(0) -> sync_with_stdio(0); cout.tie(0); cin >> m >> d >> n; for(int i=1; i<=n; ++i) { cin >> stX[i].fi; stX[i].se=i; } sort(stX.begin()+1, stX.begin()+n+1); int lb=0, rb=n+1, mb; while (lb<rb) { mb=(lb+rb)>>1; if (f(mb)) rb=mb; else lb=mb+1; } trace(lb); cout << lb << '\n'; for(int i=1; i<=m; ++i) { for(int j: ans[i]) cout << j << ' '; cout << "0\n"; } }

Compilation message (stderr)

jobs.cpp: In function 'void setIO(std::string)':
jobs.cpp:16:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |  freopen((name+".in").c_str(),"r",stdin);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jobs.cpp:17:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |  freopen((name+".out").c_str(),"w",stdout);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...