답안 #981539

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
981539 2024-05-13T10:09:39 Z SmuggingSpun Job Scheduling (CEOI12_jobs) C++14
100 / 100
103 ms 13648 KB
#include<bits/stdc++.h>
#define taskname "jobs"
using namespace std;
const int lim = 1e5 + 5;
vector<int>p[lim];
int main(){
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	if(fopen(taskname".inp", "r")){
		freopen(taskname".inp", "r", stdin);
	}
	int n, d, m;
	cin >> n >> d >> m;
	for(int i = 0; i < m; ){
		int x;
		cin >> x;
		p[x].emplace_back(++i);
	}
	int low = 1, high = m, ans;
	while(low <= high){
		int mid = (low + high) >> 1;
		deque<pair<int, int>>D;
		for(int i = 1; i <= n; i++){
			int current = mid;
			if(!p[i].empty() > 0){
				D.emplace_back(i, p[i].size());
			}
			if(!D.empty() && D.front().first + d < i){
				break;
			}
			while(!D.empty()){
				auto [x, y] = D.front();
				D.pop_front();
				if(current >= y){
					current -= y;
				}
				else{
					D.emplace_front(x, y - current);
					break;
				}
			}
		}
		if(!D.empty()){
			low = mid + 1;
		}
		else{
			high = (ans = mid) - 1;
		}
	}
	cout << ans << "\n";
	queue<int>q;
	for(int i = 1; i <= n; i++){
		for(int& x : p[i]){
			q.push(x);
		}
		for(int _ = 0; _ < ans && !q.empty(); _++, q.pop()){
			cout << q.front() << " ";
		}
		cout << "0\n";
	}
}

Compilation message

jobs.cpp: In function 'int main()':
jobs.cpp:31:10: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   31 |     auto [x, y] = D.front();
      |          ^
jobs.cpp:9:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    9 |   freopen(taskname".inp", "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
jobs.cpp:55:26: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
   55 |   for(int _ = 0; _ < ans && !q.empty(); _++, q.pop()){
      |                  ~~~~~~~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 4060 KB Output is correct
2 Correct 11 ms 4252 KB Output is correct
3 Correct 12 ms 4060 KB Output is correct
4 Correct 11 ms 4020 KB Output is correct
5 Correct 12 ms 4060 KB Output is correct
6 Correct 14 ms 4060 KB Output is correct
7 Correct 13 ms 4056 KB Output is correct
8 Correct 11 ms 4056 KB Output is correct
9 Correct 14 ms 4188 KB Output is correct
10 Correct 15 ms 4184 KB Output is correct
11 Correct 12 ms 3928 KB Output is correct
12 Correct 23 ms 4956 KB Output is correct
13 Correct 34 ms 6996 KB Output is correct
14 Correct 53 ms 8272 KB Output is correct
15 Correct 71 ms 9040 KB Output is correct
16 Correct 79 ms 10836 KB Output is correct
17 Correct 89 ms 12624 KB Output is correct
18 Correct 84 ms 12628 KB Output is correct
19 Correct 103 ms 13648 KB Output is correct
20 Correct 92 ms 12600 KB Output is correct