답안 #239303

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
239303 2020-06-15T10:13:46 Z dCoding Job Scheduling (CEOI12_jobs) C++14
5 / 100
261 ms 13816 KB
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <numeric>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <unordered_map>

#define ll long long int
#define F0R(i,n) for(auto i = 0; i < (n); i++)
#define FOR(i,a,b) for(auto i = (a); i <= (b); i++)
#define ROF(i,a,b) for(auto i = (a); i >= (b); i--)
#define pii pair<int,int> 
#define pll pair<ll,ll>
#define vv vector
#define F first
#define S second
#define pb push_back
#define vi vector<int>

using namespace std;

const int MAXM = 1e6+5;
int n,d,m;
pii a[MAXM];

bool valid(int machines) {
	FOR(i,1,n) {
		int maxjob = machines*i;
		maxjob = min(maxjob,m);
		if(i-a[maxjob].F > d) {
			return false;
		}
		if(maxjob == m)break;
	}
	return true;
}

signed main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	cin >> n >> d >> m;
	FOR(i,1,m) cin >> a[i].F;
	FOR(i,1,m)a[i].S = i;
	sort(a+1,a+m+1);
	int lo = 1,hi = m,mid;
	while(lo < hi) {
		mid = lo+hi >> 1;
		if(valid(mid)) {
			hi = mid-1;
		} else {
			lo = mid+1;
		}
	}
	assert(lo == hi);
	int machines = lo;
	cout << machines << "\n";
	int	jobNumber = 1;
	F0R(i,n) {
		if(jobNumber > m) {
			cout << "0\n";
			continue;
		}
		F0R(j,machines) {
			if(jobNumber > m) {
				cout << "0\n";
				// goto nextDay;
			} else {
				cout << a[jobNumber++].S << " ";
			}
		}
	
		cout << "0\n";
		nextDay:;
	}
}

Compilation message

jobs.cpp: In function 'int main()':
jobs.cpp:57:11: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   mid = lo+hi >> 1;
         ~~^~~
jobs.cpp:83:3: warning: label 'nextDay' defined but not used [-Wunused-label]
   nextDay:;
   ^~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 22 ms 1792 KB Output isn't correct
2 Incorrect 22 ms 1792 KB Output isn't correct
3 Runtime error 16 ms 2304 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Incorrect 22 ms 1792 KB Output isn't correct
5 Incorrect 22 ms 1792 KB Output isn't correct
6 Incorrect 23 ms 1792 KB Output isn't correct
7 Runtime error 16 ms 2048 KB Execution killed with signal 11 (could be triggered by violating memory limits)
8 Runtime error 15 ms 2176 KB Execution killed with signal 11 (could be triggered by violating memory limits)
9 Incorrect 33 ms 1916 KB Output isn't correct
10 Incorrect 33 ms 1920 KB Output isn't correct
11 Incorrect 31 ms 1784 KB Output isn't correct
12 Correct 58 ms 3196 KB Output is correct
13 Incorrect 87 ms 4728 KB Output isn't correct
14 Runtime error 93 ms 6904 KB Execution killed with signal 11 (could be triggered by violating memory limits)
15 Incorrect 145 ms 7672 KB Output isn't correct
16 Runtime error 131 ms 9976 KB Execution killed with signal 11 (could be triggered by violating memory limits)
17 Incorrect 214 ms 10616 KB Output isn't correct
18 Incorrect 235 ms 12136 KB Extra information in the output file
19 Incorrect 261 ms 13816 KB Output isn't correct
20 Incorrect 215 ms 10616 KB Output isn't correct