infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Adrian Diaconu din Martie 07, 2008, 15:39:47



Titlul: 671 Joc7
Scris de: Adrian Diaconu din Martie 07, 2008, 15:39:47
Aici puteţi discuta despre problema Joc7 (http://infoarena.ro/problema/joc7).


Titlul: Răspuns: 671 Joc7
Scris de: Ionescu Vlad din Martie 07, 2008, 19:52:02
E corect exemplul 2? Se cere nivelul minim 100 iar el termina jocul cu nivelul 19?


Titlul: Răspuns: 671 Joc7
Scris de: Tabara Mihai din Martie 07, 2008, 20:10:13
E corect exemplul 2? Se cere nivelul minim 100 iar el termina jocul cu nivelul 19?

In caz ca nu mai poate merge pe alta misiune pentru ca are N-ul la un moment dat prea mic, se returneaza valoarea respectiva.
Nu se precizeaza in enunt, dar si eu am dedus asta din exemplul 2.

:thumbup:


Titlul: Răspuns: 671 Joc7
Scris de: Ionescu Vlad din Martie 07, 2008, 20:18:45
Tocmai, ca inca se precizeaza ca exista intotdeauna solutie, ceea ce m-a dus cu gandul ca exemplul ar fi gresit. Asta era, imi intra in ciclu infinit cand nu aveam solutie.

Si cred ca trebuie n < 2 miliarde, nu 20 de miliarde, pt ca eu am luat 100 folosind int.


Titlul: Răspuns: 671 Joc7
Scris de: Tabara Mihai din Martie 07, 2008, 20:23:08
Asta era, imi intra in ciclu infinit cand nu aveam solutie.

La fel am patit si eu. :wink:


Titlul: Răspuns: 671 Joc7
Scris de: Adrian Diaconu din Martie 08, 2008, 10:13:20
Am corectat precizarea respectiva.


Titlul: Răspuns: 671 Joc7
Scris de: Anonim din Martie 26, 2008, 20:26:24
Va rog si eu ceva stiu ca nu aveti voie dar mam chinuit ata la pr asta .. chiar daca e usoara prima oara am obtinut doar 20 de p apoi mam chinuit am luat vreo 50 de ex si am vazut unde greseam si am luat dupaia 80 de p

Vreau si eu niste vreo doua exemple sa vad unde gresesc .


Titlul: Răspuns: 671 Joc7
Scris de: Serban Andrei Stan din Martie 26, 2008, 20:44:02
Problema a fost data la onigim 2008. Nu stiu daca testele sunt aceleasi, dar daca te uiti pe ele probabil te-ar putea ajuta. Personal iti recomand sa cauti greseala in codul tau. Pentru a le accesa intra pe http://isj.bc.edu.ro/ si da-i la "cautare combinata": Olimpiada nationala de informatica. Si vezi tu mai departe...


Titlul: Răspuns: 671 Joc7
Scris de: Anonim din Martie 26, 2008, 20:59:09
Da ms oricum ptr raspuns dar am observat ca prin multe exemple iei suta :D deci am mai dat vreo 4 ex si deja am gasit eroarea si am luat 100 ms mult :*


Titlul: Răspuns: 671 Joc7
Scris de: gaboru corupt din Mai 04, 2008, 12:38:09
trebuie sortate datele de intrare? :-k


Titlul: Răspuns: 671 Joc7
Scris de: Andrei Misarca din Mai 04, 2008, 12:46:55
Nu


Titlul: Răspuns: 671 Joc7
Scris de: gaboru corupt din Mai 04, 2008, 16:18:49
si cam ce complexitate sa aiba algoritmul? ca eu am o idee de O(n2) :-s


Titlul: Răspuns: 671 Joc7
Scris de: Bondane Cosmin din Mai 04, 2008, 16:26:18
Este greu sa imi dau seama exact ce complexitate am. Cred ca in cel mai rau caz ar fi O(n^2), dar acest lucru nu cred ca are loc. Deci teoretic ar fi O(n^2), dar practic cred ca tinde undeva la O(n).


Titlul: Răspuns: 671 Joc7
Scris de: Irina Grosu din August 05, 2008, 22:20:15
trebuie sortate datele de intrare? :-k

daca vrei le poti  sorta... eu am folosit un quick sort si am luat 100 pct  :thumbup:


Titlul: Răspuns: 671 Joc7
Scris de: Flavius Anton din Ianuarie 13, 2009, 22:44:38
Ce au asa de special testele 3 6 si 8 ? Ca vad ca iau doar 70 si iau WA pe astea 3  ](*,)

Never mind....era doar un test pus unde nu trebuie  :oops:, acum iau 100  \:D/


Titlul: Răspuns: 671 Joc7
Scris de: Rusu Radu din Mai 31, 2009, 20:51:48
Ce au asa de special testele 0 si 1:-?


Titlul: Răspuns: 671 Joc7
Scris de: Mercea Otniel din August 21, 2013, 16:36:24
ce este gresit iau wa 3-10?

Cod:
#include<iostream>
using namespace std;
#include<stdio.h>
#include<algorithm>
FILE *f,*g;
long long n,m,maximpoz,maxim1,nr,aux,x;
int k,i;
struct puncte
{
    long long x,y,maxim;
};
puncte a[5001];
long long cmp(puncte a,puncte b)
{
    return a.x<b.x;
}
int main()
{
    f=fopen("joc7.in","r");
    g=fopen("joc7.out","w");
    fscanf(f,"%lld%d%lld\n",&n,&k,&m);
    for(i=0;i<k;i++)
        {fscanf(f,"%lld%lld\n",&a[i].x,&a[i].y);
        a[i].maxim=a[i].y-a[i].x;
        }
    sort(a,a+k,cmp);
    for(i=0;i<k;i++)
        if(a[i].x<=n)
        {
            if(a[i].maxim>maxim1)
                {maxim1=a[i].maxim;
             maximpoz=i;
             aux=a[i].y;
             x=1;}
        }
        else
        {maxim1=0;i--;
           x=0;
           n=a[maximpoz].y;
            nr++;
            if(n>=m)
                break;
                    if(n<a[i+1].x)
                    break;
        }
        if(x==1)
            nr++;
fprintf(g,"%lld %lld",aux,nr);

}

Editat de admin: Foloseste tagul "code" atunci cand postezi surse.