답안 #1108936

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1108936 2024-11-05T17:15:16 Z yazansh Job Scheduling (CEOI12_jobs) C++17
80 / 100
353 ms 45996 KB
/*************
  the author:     
  shimutski_zoro   
************ */
#include <bits/stdc++.h>
using namespace std;
#define yon(x) cout<<((x)?"YES":"NO");
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define ff first 
#define ss second
#define em emplace_back
#define rep(i,j,k) for(int i=j;i<=k;i++)
#define per(i,j,k) for(int i=k;i>=j;i--)
#define forp(x,y,a) for(auto &[x,y]:(a))
typedef long long  ll;
typedef pair<ll,ll> pll;
typedef vector<ll> vl;
typedef vector<pll> vpl;
typedef vector<vl> vvl;
typedef vector<vpl> vvpl;
typedef vector<string> vs;
typedef deque<ll> dl;
const int mod=1e9+7;
ll inf =1e18+1;
const int M=1e6;
const int N=1e3+1; 
const ll dx[]={1,0,-1,0},dy[]={0,1,0,-1};
void solve(){
ll n,m,d;
cin>>n>>d>>m;
vl a(m);
rep(i,0,m-1)cin>>a[i];
vl idx(m);
iota(all(idx),0LL);
sort(all(idx),[&](ll i ,ll j){return a[i]<a[j];});
sort(all(a));
vvl tmp(n+1);
 function<bool(ll)>check=[&](ll r)->bool{
  tmp=vvl (n+1);
ll cnt=0;
rep(i,1,n){
  rep(j,1,r){
    if(a[cnt]>i)
    break;
if(a[cnt]+d<i){
return 0;
}else{
  tmp[i-1].em(idx[cnt]);
  cnt++;
}
if(cnt>=m)return 1;
  }

}
return 0;

 };
 vvl v(n+1);
 ll lo=0,hi=1e9;
 ll ans=1e9;
 while(lo<=hi){
  ll mid= lo + (hi-lo)/2;
if(check(mid)){
  hi=mid-1;
  ans=mid;
  v=tmp;
}else{
  lo=mid+1;
}
 }
cout<<ans<<endl;
//vvl v(n+1);
rep(i,1,n){
  for(auto it:v[i]){
    cout<<it+1<<" ";
  }
  cout<<0<<"\n";
}
}


signed main()
{
 
    ios_base::sync_with_stdio(NULL);
    cin.tie(nullptr);
    cout.tie(nullptr);
    #ifdef Usaco
    string f="herding";
    freopen((f+".in").c_str(),"r",stdin);
    freopen((f+".out").c_str(),"w",stdout);
    #endif
   int t = 1;
//cin >> t;
    while (t--)
    {
      solve();
    //  if(t>0)
      //cout<<endl;
    }
}
/*
*/
# 결과 실행 시간 메모리 Grader output
1 Correct 41 ms 6404 KB Output is correct
2 Correct 44 ms 6452 KB Output is correct
3 Correct 43 ms 6404 KB Output is correct
4 Correct 43 ms 6416 KB Output is correct
5 Correct 44 ms 6440 KB Output is correct
6 Correct 43 ms 6360 KB Output is correct
7 Correct 42 ms 6388 KB Output is correct
8 Correct 44 ms 6432 KB Output is correct
9 Correct 60 ms 13816 KB Output is correct
10 Correct 55 ms 13780 KB Output is correct
11 Correct 36 ms 5060 KB Output is correct
12 Correct 67 ms 9460 KB Output is correct
13 Correct 94 ms 15252 KB Output is correct
14 Correct 174 ms 20960 KB Output is correct
15 Correct 157 ms 22856 KB Output is correct
16 Correct 256 ms 30004 KB Output is correct
17 Runtime error 296 ms 37100 KB Memory limit exceeded
18 Runtime error 254 ms 37892 KB Memory limit exceeded
19 Runtime error 353 ms 45996 KB Memory limit exceeded
20 Runtime error 303 ms 37140 KB Memory limit exceeded