Afişează mesaje
Pagini: [1]
1  Comunitate - feedback, proiecte si distractie / Off topic / Răspuns: Algoritmică , Thomas Cormen , C++ , culegere and stuff : August 01, 2015, 23:18:56
https://www.scribd.com/doc/95621492/Cormen-romaneste - pdf Cormen in romana... si cateva cuvinte lipsa Very Happy
2  infoarena - concursuri, probleme, evaluator, articole / Concursuri / Răspuns: OJI 2015 : Martie 18, 2015, 11:46:14
De ce nu a pus comisia evaluatoarele pentru OJI 2015? Pretty please...  Confused

http://olimpiada.info/oji2015/index.php?cid=arhiva

Ma poate ajuta cineva?
Am facut rost si de evaluatoare:
http://www.infoarena.ro/downloads?action=download&file=Evaluatoare.rar&safe_only=false
3  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: C++11 la olimpiade : Martie 15, 2015, 20:05:20
Din http://olimpiada.info/oji2015/precizari2015.pdf s-ar intelege ca nu ar exista vreo problema.
Citat
Observație
Atât la etapa judeţeană cât și la etapa naţională a Olimpiadei de Informatică, elevii pot scrie cod în conformitate cu standardul C++ 2011.
4  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 258 Alpin : Februarie 08, 2015, 22:51:42
Citat
if(s[x+dx][y+dy] == s[ x][y] - 1)
Conditia nu este suficienta, verifica si daca celula in care "urci" este mai mare ca precedenta.
5  infoarena - concursuri, probleme, evaluator, articole / Probleme externe / Răspuns: Robot : Ianuarie 17, 2015, 19:58:35
Pai virgula de acolo separa variabilele(ca altfel nici nu stiu cum sa zic), in cazul de fata min(a,min(b,c)).
Variabila 'Valoare' ramane constanta pe tot parcursul programului(nu se poate modifica), tine loc de '#define Valoare ...'.
(1<<30) este echivalent cu 230.1 in binar este in mod uimitor tot 1, iar <<30(Shift left) muta bitii din reprezentarea binara cu 30 de pozitii in stanga.
Cand vrei sa dai lui a si b aceiasi valoare, poti sa scri in loc de a=val;b=val; doar a=b=val;(b=val si dupa a=b).
6  infoarena - concursuri, probleme, evaluator, articole / Probleme externe / Răspuns: Robot : Ianuarie 17, 2015, 19:29:19
1. Nu te opreste nimeni sa folosesti fstream.
2. Trebuie determinat minimul dintre 3 variabile(a,b,c), asa ca determin minimul dintre (b,c) si apoi minimul dintre (a,min(b,c)).
3. Da, min este o functie din biblioteca algorithm.

Te-ar ajuta daca ai considera celula din care pleci radacina unui arbore...
7  infoarena - concursuri, probleme, evaluator, articole / Probleme externe / Răspuns: Robot : Decembrie 22, 2014, 19:36:31
Citat
while(p>0){
    l=i;
    v=j
Ce este ingrosat isi are locul inainte de while.
Oricum, metoda ta de rezolvare este gresita, problema rezolvandu-se prin programare dinamica. Se va construi alta matrice(sa o numim sol) si in ordine descrescatoare a liniilor, pornind de pe penultima linie sol[ i ][j]=min(sol[i+1][k]+abs(C[ i ][j]-C[i+1][k])), k fiind pe rand j-1, j ,j+1. La urma verificam fiecare element de pe prima linie a matricii nou construite daca este mai mic ca P, asta insemnand ca robotul poate ajunge de acolo pe ultima linie.
Iti las si un cod pentru a intelege mai bine(la cat de bine stiu sa explic...)
Cod:
#include<stdio.h>
#include<algorithm>
using namespace std;
const int Valoare=(1<<30);
int C[205][205],sol[205][205];bool ok;
int modul(int x)
{
    if(x>0) return x;
    return -x;
}
int main()
{
    int N,M,P;
    freopen("robot.in","r",stdin);
    freopen("robot.out","w",stdout);
    scanf("%d%d%d",&P,&N,&M);
    for(int i=1;i<=N;++i)
        for(int j=1;j<=M;++j)
            scanf("%d",&C[i][j]);
    for(int i=0;i<=N+1;++i)
        sol[i][0]=sol[i][M+1]=Valoare;
    for(int i=0;i<=M+1;++i)
        sol[0][i]=sol[N+1][i]=Valoare;
    for(int i=N-1;i;--i)
        for(int j=1;j<=M;++j){
            sol[i][j]=min(sol[i+1][j-1]+modul(C[i][j]-C[i+1][j-1]),min(sol[i+1][j]+modul(C[i][j]-C[i+1][j]),sol[i+1][j+1]+modul(C[i][j]-C[i+1][j+1])));
        }
    for(int i=1;i<=M;++i)
        if(sol[1][i]<P){
            printf("%d ",i);
            ok=1;
        }
    if(!ok)
        printf("-1");
    fclose(stdin);fclose(stdout);
    return 0;
}
8  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Problema Informatica : August 01, 2014, 16:39:42
Ai putea sa retii pozitia primului numar par din sir iar la scrierea tabloului sa nu-l mai afisezi pe acesta.
Cod:
#include<iostream>
using namespace std;
int N,a[50],par;
int main()
{
    cin>>N;
    for(int i=1;i<=N;++i){
        cin>>a[i];
        if(!par && a[i]%2==0) par=i;
    }
    for(int i=1;i<=N;++i)
        if(i!=par) cout<<a[i]<<" ";
    return 0;
}

Dar cum cerinta precizeaza "transformarea in memorie a tabloului citit ", va trebui sa mutam cu o pozitie inapoi fiecare element citit dupa primul numar par.
Cod:
#include<iostream>
using namespace std;
int N,a[50],par,nr;
int main()
{
    cin>>N;
    for(int i=1;i<=N;++i){
        cin>>nr;
        if(!par && nr%2==0){
            par=1;continue;
        }
        a[i-par]=nr;
    }
    for(int i=1;i<=N-par;++i)
         cout<<a[i]<<" ";
    return 0;
}
9  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 006 Factorial : Aprilie 04, 2014, 21:31:53
Te-ar putea ajuta:
  • daca exista solutie atunci 4*P<=N;
  • o formula cu care poti afla de cate ori apare un anumit numar(sa zicem k) in descompunerea tuturor numerelor mai mici ca un numar(sa zicem n)
    S=[n/k1]+[n/k2]+[n/k3]+...+[n/ki]; i-ul fiind exponentul maxim astfel incat ki<=n si []- parte intreaga
10  Comunitate - feedback, proiecte si distractie / Off topic / Răspuns: ONI ONLINE 2014 : Aprilie 04, 2014, 09:20:51
Se pare ca da.
http://infonline2014.pbinfo.ro/
11  infoarena - concursuri, probleme, evaluator, articole / Concursuri / Răspuns: OJI 2014 : Martie 03, 2014, 20:11:10
Salut, particip pentru prima oara la olimpiada de informatica, iar la OJI m-am calificat la baraj, puteti sa imi spuneti in ce consta acest baraj?

Barajul este organizat de judetul tau, o sa va adunati toti de la baraj intr-o sala cu calculatoare si o sa mai dati inca o proba asemanatoare cu OJI. Daca sunteti 3 la baraj si aveti 2 locuri libere atunci primii 2 de la aceasta proba o sa se califice.

Timpul si numarul problemelor vor fii aceleasi ca si la OJI sa inteleg?
12  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 006 Factorial : Februarie 17, 2014, 22:21:33
Eu am rezolvat astfel problema..... cu toate ca rezultatele imi dau primesc decat 25 de puncte

Cod:
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int main()
{
    int p,nr2,nr5,nr,x,k,minim;
    f>>p;
    nr2=0;
    nr5=0;
    nr=0;
    k=2;
    while(nr<p)
    {
        x=k;
        while(x%2==0)
        {
            nr2++;
            x=x/2;
        }
        while(x%5==0)
        {
            nr5++;
            x=x/5;
        }
        if(nr2<nr5) minim=nr2;
        else minim=nr5;
        nr=nr+minim;
        nr2=nr2-minim;
        nr5=nr5-minim;
        k++;
    }
    k--;
    if(nr==p)
        g<<k;
    else g<<"-1";
    return 0;
}

Iti da "decat" 25 de puncte fiindca iti iese din timp(Time limit exceeded.).
Din cate vad tu aflii si puterea lui 2, ceea ce este inutil fiindca puterea lui 2 va fi mai mare ca puterea lui 5.
Poate te va ajuta si urmatorul post:
Eu nu inteleg de ce trebuie cautare binara si nici nu prea inteleg implementarea in problema asta.
Putem sa ne bazam doar pe cateva observatii matematice : 5*2 = 10, deci numarul de zerouri are legatura cu puterile lui 5.
Deci p se poate calcula ca mai jos si mai gasim o observatie (4p<=n) :


Asa ca putem calcula numarul de zerouri impartindu-l pe n la 5 pentru fiecare numar incepand cu n=4*p pana cand gasim numarul p cautat si se obtine o complexitate mai buna decat log2(P) cu doar 33 iteratii pentru p=10^8.
13  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 474 Teams : Februarie 09, 2014, 19:55:20
 Winner 1st place
Am ajuns sa cred ca problema asta e blestemata... Ce greseam eu la parsare(sau citire...)?Retin doar numerele mai mici ca b.
Cod:
freopen("teams.in","r",stdin);
    scanf("%d %d %d \n",&n,&a,&b);
    gets(s);fclose(stdin);n=0;
    for(i=0;s[i]!='\0';i++)
        if(s[i]==' ') {if(nr<=b)v[++n]=nr;nr=0;}
        else nr=nr*10+s[i]-'0';
    if(nr<=b)v[++n]=nr;nr=0;
14  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Numere din fisier : Ianuarie 18, 2014, 09:41:23
Tu daca gasesti un numar care se divide cu 'n' il scrii iar daca nu se divide scrii "nu exista".
Asa ar trebuii sa mearga:
Cod:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
 int n,k;bool sw=0;
 cin>>n;
 ifstream f("numere.txt");
 while(f>>k)
  if(k%n==0)
   {cout<<k<<" ";sw=1;}
  if(sw==0) cout<<"nu exista";
  return 0;
}
15  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 486 Reactivi : Ianuarie 11, 2014, 23:26:20
pai ca sa fie un numar cat mai mic de frigidere nu ar trebui sa vedem care substante am nevoie de acelasi frigider adica dintre 2 substante sa fie una care are min mai mare decat celalalt si max mai mic decat acea subst nu
Bagi o substanta in frigider, setezi temperaturile si pe masura ce bagi si alte substante in acel frigider modifici temperaturile.
fmin=temperatura minima a frigiderului si fmax= temperatura maxima a frigiderului. Vei avea urmatoarele situatii: intervalul [min,max] este cuprins de intervalul [fmin,fmax]/doar max apartine intervalului [fmin,fmax]/doar min apartine lui [fmin,fmax].
16  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 486 Reactivi : Ianuarie 11, 2014, 10:54:39
nu inteleg cica ar trebui ca intre cele n insiruiri de min max sa intre in alta insiruire iar daca nu sa se afiseze n dar pe un  exemplu nu e asa
Pe care exemplu "nu e asa"? Probabil ai inteles tu gresit enuntul.
17  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 823 Reteta2 : Decembrie 14, 2013, 19:51:18
Testele nu sunt aceleasi ca si la OJI? Pe sursa sursa:http://www.infoarena.ro/job_detail/1057834?action=view-source iau 44 de puncte deoarece "nu afisez ingredientele corect", desi ruland sursa pe testele de la OJI nu vad nici o diferenta intre out si ok.
18  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 486 Reactivi : Decembrie 07, 2013, 20:58:37
M-am cam chinuit putin la aceasta problema deoarece nu luam 3 teste. De ce nu le luam? Fiindca nu sortam reactivii dupa temperatura minima inainte sa-i bag in frigidere.
http://www.infoarena.ro/job_detail/1040761?action=view-source - sursa de 20 de puncte, fara sortare
http://www.infoarena.ro/job_detail/1049835?action=view-source - sursa de 100 de puncte, cu sortare
Intrebare mea: De ce trebuie mai intai sortati reactivii?
19  infoarena - concursuri, probleme, evaluator, articole / FMI No Stress 4 / Răspuns: Dtcsu : Noiembrie 15, 2013, 16:56:48
Acele numere( cele de forma 2a3b...) de la inceput sunt in date ordine crescatoare?
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines