제출 #550613

#제출 시각아이디문제언어결과실행 시간메모리
550613epiforJob Scheduling (CEOI12_jobs)C++14
0 / 100
1 ms212 KiB
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
 
#define ll long long
 
ll n,d,m;
ll maks = 0;
vector<pair<ll,ll>> v;
 
bool fjk(int k){
    int dan = 1,cntr = 0;
    for(int i = 0;i<m;i++){
        if(cntr==k){
            cntr=0;
            dan++;
        }
        if(v[i].first>dan){
            dan++;
            i=i-1;
            continue;
        }
        if(dan>v[i].first+d){
            return false;
        }
        cntr++;
    }
    return true;
}
void fjk1(int k){
    int dan = 0,cntr = 0;
    for(int i = 0;i<m;i++){
        if(cntr==k){
            cntr=0;
            cout << 0 << endl;
            dan++;
        }
        cout << v[i].second+1 << " ";
        cntr++;
    }
    cout << 0 << endl;
    for(int i = dan;i<n-1;i++){
        cout << 0 << endl;
    }
}
 
int main() {
freopen("in.2","r",stdin);
cin >> n >> d >> m;
    ll kl,answ=1e9;
  for(int i =0;i<m;i++){
      cin>>kl;
      v.push_back({kl,i});
  }
    sort(v.begin(),v.end());
  ll a = 1, b=m;
  while(b>=a){
      ll mid = b+(a-b)/2;
 
      if(fjk(mid)==true){
          answ=min(answ,mid);
          b=mid-1;
      }else{
          a=mid+1;
      }
  }
    cout << answ << endl;
    fjk1(answ);
}

컴파일 시 표준 에러 (stderr) 메시지

jobs.cpp: In function 'int main()':
jobs.cpp:49:8: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   49 | freopen("in.2","r",stdin);
      | ~~~~~~~^~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...