답안 #1108967

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1108967 2024-11-05T18:09:28 Z yazansh Job Scheduling (CEOI12_jobs) C++17
80 / 100
297 ms 45420 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){
//cout<<cnt<<" "<<a[cnt]<<" "<<idx[cnt]<<" "<<i<<endl;
  tmp[i-1].em(idx[cnt++]+1);
}else return 0;
if(cnt==m)return 1;
  }

}
return 0;

 };
 // 1 1 2 2 2 3 3 4 4 5 6 6
 //0 4 1 3 8 
 vvl v(n+1);
 ll lo=0,hi=m;
 ll ans=m;
 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,0,n-1){
  for(auto it:v[i]){
    cout<<it<<" ";
  }
  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 35 ms 5236 KB Output is correct
2 Correct 36 ms 5228 KB Output is correct
3 Correct 31 ms 5228 KB Output is correct
4 Correct 34 ms 5172 KB Output is correct
5 Correct 35 ms 5240 KB Output is correct
6 Correct 31 ms 5228 KB Output is correct
7 Correct 33 ms 5228 KB Output is correct
8 Correct 35 ms 5208 KB Output is correct
9 Correct 48 ms 13424 KB Output is correct
10 Correct 41 ms 14204 KB Output is correct
11 Correct 37 ms 4688 KB Output is correct
12 Correct 57 ms 8860 KB Output is correct
13 Correct 88 ms 14108 KB Output is correct
14 Correct 143 ms 19164 KB Output is correct
15 Correct 142 ms 21576 KB Output is correct
16 Correct 244 ms 26064 KB Output is correct
17 Runtime error 251 ms 33720 KB Memory limit exceeded
18 Runtime error 261 ms 34912 KB Memory limit exceeded
19 Runtime error 297 ms 45420 KB Memory limit exceeded
20 Runtime error 289 ms 33728 KB Memory limit exceeded