Cod sursa(job #1704519)

Utilizator depevladVlad Dumitru-Popescu depevlad Data 18 mai 2016 21:59:54
Problema Partitie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <algorithm>

using namespace std;

const int N_MAX = 300005;

pair<int, int> v[N_MAX];
int ans[N_MAX], N, D, cnt;

int main() {
   ifstream f("partitie.in");
   ofstream g("partitie.out");
   
   f >> N >> D;
   for(int i = 1; i <= N; i++)
      f >> v[i].first, v[i].second = i;
   
   sort(v+1, v+N+1);
   
   for(int i = 1, j = 1; i <= N; i++) {
      while(D <= v[i].first - v[j].first)
         ++j;
      cnt = max(cnt, i - j + 1);
   }
   
   for(int i = 1; i <= N; i++)
      ans[v[i].second] = i % cnt + 1;
   
   g << cnt << '\n';
   for(int i = 1; i <= N; i++)
      g << ans[i] << '\n';
   
   return 0;
}