Submission #706271

#TimeUsernameProblemLanguageResultExecution timeMemory
706271ToroTNJob Scheduling (CEOI12_jobs)C++14
100 / 100
894 ms15372 KiB
#include<bits/stdc++.h> using namespace std; #define X first #define Y second #define pb push_back int n,d,m,job[100005],num,st,md,ed,type,flag; priority_queue<int> pq; priority_queue<pair<int,int> >pq2; vector<int> v[100005]; int main() { scanf("%d%d%d",&n,&d,&m); for(int i=1;i<=m;i++) { scanf("%d",&num),++job[num]; v[num].pb(i); } st=1; ed=1000000000; while(ed>=st) { md=(st+ed)/2; //printf("%d %d %d\n",st,md,ed); type=0; while(!pq.empty())pq.pop(); for(int i=1;i<=n;i++) { for(int j=0;j<job[i];j++)pq.push(-i); if(pq.size()!=0) { if(i>-pq.top()+d) { type=-1; } flag=min((int)pq.size(),md); for(int j=1;j<=flag;j++)pq.pop(); } } if(pq.size()>0)type=-1; if(type==0) { ed=md-1; }else { st=md+1; } } while(!pq.empty()) { pq.pop(); } printf("%d\n",st); for(int i=1;i<=n;i++) { for(int j=0;j<v[i].size();j++) { pq2.push({-i,v[i][j]}); } if(pq2.size()!=0) { flag=min((int)pq2.size(),st); for(int j=1;j<=flag;j++) { printf("%d ",pq2.top().Y); pq2.pop(); } } printf("0\n"); } }

Compilation message (stderr)

jobs.cpp: In function 'int main()':
jobs.cpp:55:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |         for(int j=0;j<v[i].size();j++)
      |                     ~^~~~~~~~~~~~
jobs.cpp:12:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     scanf("%d%d%d",&n,&d,&m);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~
jobs.cpp:15:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |         scanf("%d",&num),++job[num];
      |         ~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...