Skocz do zawartości

Olimpiada informatyczna www.oi.edu.pl


Wraith

Recommended Posts

Hmm koleja edycja jesli myslicie ze jestescie dobrzy w programowaniu to niezapomnijcie ze na tego typu olimpiadach dobrych programistow zatrzymuje matematyka. zadania mozna pobrac ze stronki www.oi.pl.
Ja zawsze myslelem ze programowanie to nie nauka jezyka tylko sztuka myslenia ale tu myslec trzeba niekonwencjonalnie gdy zrobilem zadanie z bankomatami to teraz wydaje mi sie ono takie proste ze potrafie liczyc je w pamieci :D. Podzielcie sie swoimi spostrzezeniami na temat olimpiady i zadan

Link do komentarza
Udostępnij na innych stronach

  • 2 weeks later...

huh ja zrobilem ska, sam, no i ban ruszylem, dzialaja na wielu danych i sa dosc szybkie, jednak nie licze ze dostane za nie powyzej 40 bo testy sa napewno przerabane, natomiast ska i sam poszly dosc niezle, ale to moj pierwszy rok i dosc amator bylem :). Dozer jesli moglbys przeslij te kody od ban-a, sarevook@interia.pl

Link do komentarza
Udostępnij na innych stronach

Ja mam lepszy pomysl :> nicon rob na forum nowa grup OIGroup bedzie narazie tam nas 3 ty ja i Marcin.
Przynaleznosc bedziemy rozdawac jak ktos zasluzy :> i bedziemmy sie wymieniac na specjalnym kawalku forum(zamknietym dla reszty forumowiczow) nasze kody itp bedziemy je poprawiac. W koncu ta olimpiada jest po to abysmy sie czegos nauczyli :) no to czekam na pozytywne rozpatrzenie mojej prosby :>
A moze jak sie kiedys dostaniemy bo kazdy zrobi cos a 3glowy to niejedna to sie spotkamy na kolejnym ktorys tam etapie :D

Link do komentarza
Udostępnij na innych stronach

Dozer napisał:

jak chcesz kod to napisz maila

Kodu nie chcę, bo doszedłem do wniosku, że to bardzo łatwe zadanie było i tak się w kurzyłem, bo byłem blisko.
Dozer napisał:

Ja wysylam tylko bankomaty

Patrząc po dacie postu to chyba chciałeś powiedzieć wysłałem, bo było do 22.11.04.
Nicon napisał:

ale to moj pierwszy rok

Czego pierwszy rok???
Nicon napisał:

jednak nie licze ze dostane za nie powyzej 40 bo testy sa napewno przerabane

Zazwyczaj są testy poprawnościowe i wydolnościowe. Na stronie olimpiady możesz sobie ściągnąć kilka testów, w tym dla każdego zadania jest jeden duży. Ja np. w samochodzikach robiąc duży test miałem ponad 800 sekund. Po użyciu drzew czerwono-czarnych robił to w sekundę. Co do forum, dlaczego by nie, ale coś mi się wydaję, że ktoś by na nie wchodził parę dni przed olimpiadą, parę po i tyle.

Ja zrobiłem ska, sam i sko.
Nad bankomatami myślałem nawet długo, ale próbowałem inną metodę niż bruteforce (gdzieś nie mam przekonania do takich metod). Próbowałem programowania dynamicznego i takich innych, ale nie wyszło. Gdyby nie to, że zadania pisałem na ostatnią chwilę (o 3:30 w poniedziałek 22.11.04 poszedłem spać, a w ten sam dzień miałem próbną maturę z polaka) to może bym coś sklecił. Ale cóż... zostaje mi tylko nadzieja, że próg nie będzie aż taki wysoki i sie jakoś załapie a dalej się poduczę:).

A co do poduczenia, macie może jakieś ebooki z algorytmiki (struktury danych, algorytmy itd)???

Link do komentarza
Udostępnij na innych stronach

Oto plik ban.cpp
moze zawierac bledy a co do wyslanie to niemialem czasu :/ go wyslac

//Damian Zajkowski

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
        unsigned tablica[1000];
        char uzyskane[10000][5];
        char okeja[10000][5];
        char okejb[10000][5];
        unsigned dlsek[10000];
        int pasujace = 0;
        int ilesekw = 0;
        long prawidlowe = 0;
        int raz;
        int dwa;
        int trzy;
        int cztery;

        scanf("%d",&ilesekw);
        for(int x=0;x<ilesekw;x++){
                scanf("%d %d",&dlsek[x],&tablica[x]);
        }

                
        for(int x=0;x<ilesekw;x++){
                        int q = 0;
                        char buf[10000];
                        buf[0]='\0';
                        sprintf(buf,"%d",tablica[x]);
                        //if(atoi(buf[0])<atoi(buf[1])

                        raz=0;
                        dwa=0;
                        trzy=0;
                        cztery=0;
                        q=0;
                        while(cztery!=dlsek[x]-1)
                        {
                        sprintf(okeja[q],"%s\0",uzyskane[q]);
                        
                        if(trzy==dlsek[x]-1){
                                trzy=cztery;
                                cztery++;
                        }
                        if(dwa==dlsek[x]-1){
                                dwa=trzy;
                                if(trzy!=dlsek[x]-1)
                                        trzy++;
                                
                        }
                        if(raz==dlsek[x]-1){
                                raz=dwa;
                                if(dwa!=(dlsek[x]-1))
                                        dwa++;
                        }
                        if(raz!=dlsek[x]-1)
                                raz++;
                        if(q==0){
                        sprintf(uzyskane[q],"%c%c%c%c\0",buf[cztery],buf[cztery],buf[cztery],buf[cztery]);
                        q++;
                        }
                        sprintf(uzyskane[q],"%c%c%c%c\0",buf[cztery],buf[trzy],buf[dwa],buf[raz]);
                        q++;
                        }
                        
                        for(int dlugi = 0;dlugi<q;dlugi++){
                        if(ilesekw==1){
                        printf("%s\n",uzyskane[dlugi]);
                        }
                                for(int krotki = 0;krotki<q;krotki++)
                                {
                                if(!strcmp(uzyskane[dlugi],okeja[krotki])){
                                pasujace++;
                                //printf("Pasujacy pin: %s\n",uzyskane[dlugi]);
                                prawidlowe++;
                                }
                                }
                        }
                        q=0;    
        }  

        printf("%d\n",prawidlowe);
        return 0;
}

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...