Cod sursa(job #2982643)

Utilizator adelina_15InfoAdelina Radoi adelina_15Info Data 20 februarie 2023 17:26:52
Problema Partitie Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("partitie.in");
ofstream fout("partitie.out");

vector<vector<int>>a;
vector<int>rasp;
int nrg = 1;
int n, d;

int Modul(int x)
{
    if(x >= 0)
        return x;
    return -x;
}

int main()
{
    int x;
    fin >> n >> d;
    fin >> x;
    vector<int>b;
    b.push_back(x);//min
    b.push_back(x);//max
    a.push_back(b);
    rasp.push_back(1);
    for(int i = 1; i < n; i++)
    {
        fin >> x;
        bool ok = false;
        int ind = 0;
        for(int j = 0; j < nrg; j++)
        {
            if(Modul(a[j][0]-x) >= d && Modul(a[j][1]-x) >= d)
            {
                ok = true;
                a[j][0] = min(a[j][0], x);
                a[j][1] = max(a[j][1], x);
                ind = j+1;
                break;
            }
        }
        if(!ok)
        {
            nrg++;
            vector<int>b;
            b.push_back(x);//min
            b.push_back(x);//max
            a.push_back(b);
            ind = nrg;
        }
        rasp.push_back(ind);
    }
    fout << nrg << "\n";
    for(int i = 0; i < rasp.size(); i++)
        fout << rasp[i] << "\n";
    return 0;
}