제출 #98970

#제출 시각아이디문제언어결과실행 시간메모리
98970figter001Job Scheduling (CEOI12_jobs)C++14
100 / 100
403 ms17424 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const int nax = 1e5+50;

vector<pair<int,int>> j;
vector<int> w;
int n,d,m;
queue<int> tmp;

bool can(int md){
	queue<int> q = tmp;
	int cur = 1,u = 0;
	while(q.size()){
		int v = q.front();
		if(v - d > cur){
			cur = v-d;
			u = 0;
		}
		q.pop();
		if(cur > v)return 0;
		u++;
		if(u == md){
			u = 0;
			cur++;
		}
	}
	return 1;
}

int main(){
	scanf("%d%d%d",&n,&d,&m);
	j.resize(m);
	for(int i=0;i<m;i++){
		scanf("%d",&j[i].first);
		j[i].second = i;
	}
	sort(j.begin(),j.end());
	for(int i=0;i<m;i++)
		tmp.push(j[i].first + d);
	int md,lo=1,hi=1e5,ans=1e5;
	while(lo <= hi){
		md = (lo+hi)/2;
		if(can(md)){
			hi = md-1;
			ans = md;
		}else lo = md+1;
	}
	printf("%d\n", ans);
	int u = 0,id=0;
	for(int i=0;i<n;i++){
		for(int x=0;x<ans;x++){
			if(id == m)break;
			if(j[id].first - 1 > i)break;
			printf("%d ", j[id].second + 1);
			id++;			
		}
		printf("0\n");
	}
}

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

jobs.cpp: In function 'int main()':
jobs.cpp:54:6: warning: unused variable 'u' [-Wunused-variable]
  int u = 0,id=0;
      ^
jobs.cpp:36:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%d",&n,&d,&m);
  ~~~~~^~~~~~~~~~~~~~~~~~~
jobs.cpp:39:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",&j[i].first);
   ~~~~~^~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...