답안 #1090984

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1090984 2024-09-19T11:20:46 Z wrtt Job Scheduling (CEOI12_jobs) C++17
10 / 100
249 ms 65536 KB
// Dost SEFEROĞLU

#include "bits/stdc++.h"
//#include "windows.h"

#define int long long
#define mx(a, b) ((a) > (b) ? (a) : (b))
#define mn(a, b) ((a) < (b) ? (a) : (b))
constexpr int mod = 1000000007;

int d;
int n;

bool firsttrue(int mid, int a[], int m) {
  if(mid >= m) {
    return 1;
  }
  int currday = 1;
  int i = 0;
  int maxdelay = 0;
  while(i < m && currday <= n) {
    maxdelay=mx(maxdelay, currday-a[i]);
    ++currday;
    i+=mid;
    if(maxdelay > d) return 0;
  }
  return 1;
}

bool customsort(std::pair<int,int> a, std::pair<int,int> b) {
  return a.second < b.second;
}

void solve() {
  int m;
  std::cin>>n>>d>>m;
  int a[m];
  std::unordered_map<int,int> mp;
  for(int i = 0; i < m; ++i) {
    std::cin>>a[i];
    mp[i] = a[i];
  }
  std::vector<std::pair<int,int>> v(mp.begin(), mp.end());
  std::sort(v.begin(), v.end(), customsort);
  std::sort(a,a+m);
  int l = 1; int r = 100001;
  int ans = -1;
  while(l<=r) {
    int mid = (l+r)/2;
    if(firsttrue(mid,a,m)) {
      ans=mid;
      r=mid-1;
    }
    else {
      l=mid+1;
    }
  }
  std::cout<<ans<<"\n";
  int curr = 0;
  for(auto i : v) {
    if(curr==0) {
      std::cout<<i.first+1<<" ";
      ++curr;
    }
    else if(curr%ans == 0) {
      std::cout<<i.first+1<<" 0\n";
    }
    else {
      std::cout<<i.first+1<<" ";
    }
    ++curr;
  }
  for(int i = curr/2; i < n; ++i) {
    std::cout<<0<<"\n";
  }
  //std::cout<<curr<<"\n";
}

signed main() {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(nullptr);
    #ifdef LOCAL
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    auto start = std::chrono::high_resolution_clock::now();
    #endif
    int t = 1;
    //std::cin >> t;
    while (t--) {
        solve();
    }
    #ifdef LOCAL
    auto end = std::chrono::high_resolution_clock::now();
    std::chrono::duration<double> elapsed = end - start;
    std::cout << elapsed.count() << " seconds\n";
    #endif
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 20 ms 8140 KB Output isn't correct
2 Incorrect 19 ms 8136 KB Output isn't correct
3 Incorrect 20 ms 8132 KB Output isn't correct
4 Incorrect 27 ms 8020 KB Output isn't correct
5 Incorrect 21 ms 7968 KB Output isn't correct
6 Incorrect 19 ms 8144 KB Output isn't correct
7 Incorrect 20 ms 8092 KB Output isn't correct
8 Incorrect 21 ms 8144 KB Output isn't correct
9 Incorrect 24 ms 8132 KB Unexpected end of file - int32 expected
10 Incorrect 25 ms 8140 KB Unexpected end of file - int32 expected
11 Incorrect 28 ms 8144 KB Unexpected end of file - int32 expected
12 Correct 57 ms 16208 KB Output is correct
13 Incorrect 81 ms 22648 KB Unexpected end of file - int32 expected
14 Correct 120 ms 32448 KB Output is correct
15 Runtime error 137 ms 38592 KB Memory limit exceeded
16 Runtime error 177 ms 45868 KB Memory limit exceeded
17 Runtime error 213 ms 52408 KB Memory limit exceeded
18 Runtime error 222 ms 64044 KB Memory limit exceeded
19 Runtime error 249 ms 65536 KB Execution killed with signal 9
20 Runtime error 214 ms 52416 KB Memory limit exceeded