Cod sursa(job #3220072)

Utilizator Cezar2009Cezar Mihai Titihazan Cezar2009 Data 2 aprilie 2024 10:50:05
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 3.67 kb
//https://www.pbinfo.ro/probleme/3041/venus
#include <bits/stdc++.h>
using namespace std;

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

struct comenzi
{
    int v;
    int i;
    int b;
    long long ore;
}c[1010];
bool comparare(const comenzi &a,const comenzi &b)
{
    if(a.v==b.v)
    {
        return a.ore<b.ore;
    }
    return a.v<b.v;
}
int main()
{
    int n,t,i;
    int zi,luna,ora;
    int rez[1010],k=0;
    string s;
    tm start;
    start.tm_year=120;
    start.tm_mon=0;
    start.tm_mday=1;
    start.tm_hour=1;
    start.tm_min=0;
    start.tm_sec=0;

    fin>>n>>t;
    for(i=1;i<=n;++i)
    {
        fin>>c[i].v>>zi>>s>>ora;
        c[i].i=i;
        c[i].b=1;
        //cout<<v<<" "<<zi<<" "<<s<<" "<<ora<<"\n";
        {
            if(s=="ianuarie")
            {
                luna=1;
            }
            else if(s=="februarie")
            {
                luna=2;
            }
            else if(s=="martie")
            {
                luna=3;
            }
            else if(s=="aprilie")
            {
                luna=4;
            }
            else if(s=="mai")
            {
                luna=5;
            }
            else if(s=="iunie")
            {
                luna=6;
            }
            else if(s=="iulie")
            {
                luna=7;
            }
            else if(s=="august")
            {
                luna=8;
            }
            else if(s=="septembrie")
            {
                luna=9;
            }
            else if(s=="octombrie")
            {
                luna=10;
            }
            else if(s=="noiembrie")
            {
                luna=11;
            }
            else if(s=="decembrie")
            {
                luna=12;
            }
        }
        tm target;
        target.tm_year=120;
        target.tm_mon=luna-1;
        target.tm_mday=zi;
        target.tm_hour=ora;
        target.tm_min=0;
        target.tm_sec=0;
        time_t startt=mktime(&start);
        time_t targett=mktime(&target);
        c[i].ore=difftime(targett,startt)/3600;

//        cout<<c[i].v<<" "<<zi<<" "<<luna<<" "<<ora<<"\n";
//        cout<<c[i].ore<<"\n";
//        cout << "An: " << start.tm_year << endl;
//        cout << "Lună: " << start.tm_mon << endl;
//        cout << "Zi: " << start.tm_mday << endl;
//        cout << "Ora: " << start.tm_hour << endl;
//        cout << "Ora: " << start.tm_min << endl;
//        cout << "Ora: " << start.tm_sec << endl;
//        cout << "An: " << target.tm_year << endl;
//        cout << "Lună: " << target.tm_mon << endl;
//        cout << "Zi: " << target.tm_mday << endl;
//        cout << "Ora: " << target.tm_hour << endl;
//        cout<<"\n";
    }

    sort(c+1,c+n+1,comparare);
    int oc=t,com=n,rezv=0;
    while(com)
    {
        bool sant=0;
        for(i=1;i<=n;++i)
        {
            if((c[i].ore>=oc)&&(c[i].ore<(oc+oc))))
            {
                c[i].b=0;
                sant=1;
                rez[++k]=c[i].i;
                com--;
                break;
            }
            if(c[i].ore>=(oc+oc))
            {
                for(j=1;j<i;++j)
                {
                    if(c[i].ore>=oc)
                    {
                        c[i].b=0;
                        sant=1;
                        rez[++k]=c[j].i;
                        com--;
                        break;
                    }
                }
                break;
            }
        }
        if(sant==0)
        {
            rezv+=
        }
        oc+=t;
    }

    return 0;
}