Rezultati

Up. imeNalogaJezikRezultatČas oddaje
tab-2019 Ocenjevanje univerz C++ 100/100OK 24. apr '19 @ 18:36

Test Točke Porabljen spomin Porabljen čas Status
#1 [več] 10/10 3,125 MiB 0,079 s OK
#2 [več] 10/10 3,129 MiB 0,154 s OK
#3 [več] 10/10 3,027 MiB 0,000 s OK
#4 [več] 10/10 3,277 MiB 0,085 s OK
#5 [več] 10/10 3,125 MiB 0,039 s OK
#6 [več] 10/10 3,277 MiB 0,085 s OK
#7 [več] 10/10 3,000 MiB 0,177 s OK
#8 [več] 10/10 3,027 MiB 0,141 s OK
#9 [več] 10/10 3,027 MiB 0,027 s OK
#10 [več] 10/10 3,125 MiB 0,107 s OK

Ocenjevani program (main.cpp):
#include <iostream>
#include <vector>
#include <cstdio>
#include <string>
#include <math.h>
#include <algorithm>

using namespace std;

double abso(double a){
    return a<0?-a:a;
}

int main()
{
    int n,m;
    double maxgu=1,maxgl=1,maxa=-1,maxb,minsu=0,minsl=1,mina=-1,minb=-1;
    cin>>n;
    long long int a1,b1;
    cin>>a1>>b1;
    for(int i=1;i<n;++i){
        long long int a2,b2;
        cin>>a2>>b2;
        double kol = (a1-b1-a2+b2);
        double f = b2-b1;
        if(kol==0&&f>0){
            cout<<"Slabe metrike";
            return 0;
        }
        else if(kol==0) continue;
        if(kol>0){
                //x>f/kol
            if(f<=0) continue;
            if(minsu*kol<minsl*f){
                minsu=f;
                minsl=kol;
                mina=a2;
                minb=b2;
            }


        }
        if(kol<0){
           //x<f/kol
           kol=-kol;
           if(f>0) {
                cout<<"Slabe metrike";
                return 0;
           }
           else if(f!=0) f=-f;
            if(maxgu*kol>maxgl*f){
                maxgu=f;
                maxgl=kol;
                maxa=a2;
                maxb=b2;
            }
        }
    }
    if(minsu*maxgl>minsl*maxgu && abso((minsu/minsl)*maxa+(1-minsu/minsl)*maxb-mina*(maxgu/maxgl)-minb*(1-maxgu/maxgl))>0.000001 ){
        cout<<"Slabe metrike";
                return 0;
    }
    cout<<(minsu/minsl+maxgu/maxgl)/2<<" "<<(1-(minsu/minsl+maxgu/maxgl)/2);
    return 0;
}