N-PN White-Hat Project
site d'algorithmique et coucours - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Communauté (https://dev.n-pn.fr/forum/forumdisplay.php?fid=10)
+--- Forum : Le bistrot (https://dev.n-pn.fr/forum/forumdisplay.php?fid=17)
+--- Sujet : site d'algorithmique et coucours (/showthread.php?tid=2197)



site d'algorithmique et coucours - InstinctHack - 23-09-2012

C'est firewar qui m'as fait découvrir et comme j'aime bien (quoique un peu facile pour les epreuves que j'ai vu) je partage.

http://prologin.org/

Concernant les spécifications de la machine, compilation, taille des types, etc c'est ici
http://prologin.org/training/help

http://www.france-ioi.org/

@staff a mettre dans le répertoire ou pas ?


RE: site d'algorithmique et coucours - -Mat- - 23-09-2012

Facile, les épreuves de Prologin ?... Je suis bloqué à la 3ème de 2012 :/

Perso, j'ai connu avec le SdZ il me semble.



Pour France-ioi, c'est vrai que les 1ers exos sont faciles mais ça se corse dès le niveau 2.


RE: site d'algorithmique et coucours - Creepy_p0ney - 23-09-2012

tu rigoles france ioi c'est assez simple ssauf deux trois exos ou il faut un peu de reflexion sinon c'est assez simple. Par contre prologin c'est assez compliqué.


RE: site d'algorithmique et coucours - InstinctHack - 24-09-2012

http://prologin.org/training/challenge/demi2012/candide

Code PHP :
$number_array=explode(" ","4 5 6 7 10 11");
$string_array=explode(" ","On vous demande d'ecrire une fonction afin de retourner la valeur 42.");
foreach(
$number_array as $key=>$value)
{
 unset(
$string_array[(int)$value-1]);
}
echo 
implode(' ',$string_array); 

Pas tester mais l'essentiel est là, et ça en 47 secondes le temps de l'écriture O.o
Vous trouvez ça compliquer ???

EDIT : fonctionnel et regardez la différence entre l'heure de l'envoi du message et de l'édit ^^"

http://prologin.org/training/challenge/demi2012/manhattan
Code PHP :
<?php
$position
=array(
    
'x'=>0,
    
'y'=>5
);
$array_friend=array();
$array_friend[]=array(
    
'name'=>'Ark',
    
'x'=>0,
    
'y'=>9
);
$array_friend[]=array(
    
'name'=>'supernail',
    
'x'=>10,
    
'y'=>1
);
$array_friend[]=array(
    
'name'=>'cybersee',
    
'x'=>0,
    
'y'=>2
);
$min=array(
'number'=>-1,
'distance'=>-1
);
foreach (
$array_friend as $key=>$value)
{
    
$distance=abs($value["x"]-$position["x"]) + abs($value["y"]-$position["y"]);
    if( 
$distance $min['distance'] || $min['distance']< 0)
    {
        
$min["number"]=$key;
        
$min["distance"]=$distance;
    }
}

print_r($min);
echo 
"<br /><br />\n\nJe vais boire une bière chez ",$array_friend[$min["number"]]['name'].' :> '

* InstinctHack vas peut-etre le faire ce coucours ^^"


http://prologin.org/training/challenge/demi2012/triangle
Code PHP :
#include "../_commun/include_general.c"

void ecrire(char position,int nombre)
{
    while(
nombre>0)
    {
        
printf("%s",position);
        
nombre--;
    }
}


int main(int argc,char **argv)
{
    
char test[10];
    
input(test,10);
    
long i;
    
strtol(testNULL10 );
    
int garde=i*2;
    
int lol=0;
    while(
i>0)
    {
        
ecrire(" ",i-1);
        
ecrire("/",1);
        if(
i==1)
        {
            
ecrire("_",garde-2);
        }
        else
        {
            
ecrire(" ",lol);
        }
        
ecrire("\\",1);
        
ecrire("\n",1);
        
i--;
        
lol+=2;
    }


    return 
1;




RE: site d'algorithmique et coucours - -Mat- - 24-09-2012

o_O !
J'ai mis environ 3h pour faire candide et voilà mon code :/ (Qui n'est pas validé par Prologin alors qu'il est bon en tous cas chez moi)

Code :
void candide(int d, int l, int* p, char* t)
{
    int positionMot = 0;
    char positionMotBase = 0;
    int j = 0;
    int h;
    int i;
    int continuer = 1;
    int debutTrouve = 0;
    char *positionDebutDeMot = NULL;
    char *positionFinDeMot = NULL;
    int cache = 0;
    
    // Rangement dans l'ordre croissant des mots
    for(i = 0 ; i < d ; i++)
    {
        for(j = 0 ; j < d-1 ; j++)
        {
            if(p[j] > p[j+1])
            {
               cache = p[j+1];
               p[j+1] = p[j];
               p[j] = cache;
            }
        }
    }


    for(i = 0 ; i < d ; i++)
    {
        positionMot = p[i]-i;
        positionMotBase = positionMot;

        for(h = 0, continuer = 1 ; h <= l && continuer != 0; h++)
        {
            if(t[h] == ' ' || t[h] == '\0')
            {
                positionMot--;
            }

            if(positionMot == 0)
            {

                if (positionMotBase == 1)
                    positionFinDeMot = &t[h+1];

                else
                    positionFinDeMot = &t[h];

                strcpy(positionDebutDeMot, positionFinDeMot);
                continuer = 0;
            }

            if(positionMot == 1 && !debutTrouve)
            {
                positionDebutDeMot = &t[h];

                debutTrouve = 1;
            }
        }
        debutTrouve = 0;
    }
}