Rezultati

Up. imeNalogaJezikRezultatČas oddaje
jam-2018 Prehod čez cesto C++ 0/100Napaka med izvajanjem / ob izhodu (RTE) 04. okt '18 @ 18:35

Test Točke Porabljen spomin Porabljen čas Status
#1 0/9 3,133 MiB 0,010 s Napačen odgovor
Tvoj izhod:
​0
<<<EOF>>>
Pravilen izhod:
​109.4761904762
<<<EOF>>>
#2 0/9 3,168 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​47.2243
<<<EOF>>>
Pravilen izhod:
​47.2242654830
<<<EOF>>>
#3 9/9 3,379 MiB 0,010 s OK
#4 9/9 3,277 MiB 0,004 s OK
#5 9/9 3,125 MiB 0,004 s OK
#6 0/9 2,832 MiB 0,000 s Napaka med izvajanjem / ob izhodu
#7 9/9 3,125 MiB 0,000 s OK
#8 9/9 3,336 MiB 0,004 s OK
#9 0/9 3,336 MiB 0,004 s Napačen odgovor
Tvoj izhod:
​1.20011
<<<EOF>>>
Pravilen izhod:
​2.000000000
<<<EOF>>>
#10 9/9 3,125 MiB 0,000 s OK
#11 10/10 3,129 MiB 0,000 s OK

Ocenjevani program (main.cpp):
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>

using namespace std;

class Avto {
public:
    double x1, x2;

    Avto (double x1, double x2) : x1(x1), x2(x2) {}
};

double epsilon = 0.000000001;
vector<Avto *> avti;

struct comp {
    bool operator() (const Avto *a, const Avto *b) {
        return a->x1 > b->x1;
    }
};

int main() {

    int st_pasov, st_avtov;
    cin >> st_pasov >> st_avtov;

    for (int i = 0; i < st_avtov; i++) {
        int pas, x, v, d;
        cin >> pas >> x >> v >> d;

        // predznak v
        if (v < 0) {
            x *= -1;
            v *= -1;
        }

        // pas
        x += 10 * (pas - 1) * v;

        if (x > 0)
            continue;

        // hitrost
        double xnew = (double) x / (double) v;
        double dnew = (double) d / (double) v;

        avti.push_back(new Avto(xnew, xnew - dnew));
    }

    sort(avti.begin(), avti.end(), comp());

    double cas = 0;

    //for (Avto *avto : avti) {
     //   cout << avto->x1 << " " << avto->x2 << endl;
    //}

    for (Avto *avto : avti) {
        if (cas - avto->x1 >= 10. + epsilon) {
            cout << abs(cas) << endl;
            return 0;
        }
        cas = min(cas, avto->x2);
    }

    cout << abs(avti[avti.size() - 1]->x2) << endl;






}