Online-kval (1-5/2)

Tävlingen har startat! Båda sorters submission fungerar nu.

Här kan du delta i PO på egen hand och skicka in dina lösningar via Internet. OBS! Det är möjligt att deltaga i onlinekvalet även med språk som inte stöds av Kattis. Fullständig information finns nedan.

Så här gör du för att tävla

  1. Börja med att skaffa dig ett konto på PO-Kattis. Notera att det kan ta några dagar att få kontot.
  2. Bekanta dig med Kattis ordentligt genom att lösa våra träningsuppgifter som är hämtade från tidigare års PO.
  3. Längst ner på denna sida finns under tävlingstiden ett anmälningsformulär för online-kvalet. När du skickar formuläret får du omedelbart en länk till tävlingsuppgifterna.

Information om ny rättningsmodell

Submission sker på två olika sätt beroende på om man använder ett av Kattis-språken C, C++, Pascal eller Java ("standard-submission") eller något annat språk ("utdata-submission"). Nedan följer först information som är gemensam för båda sätten, därefter specifik information för vart och ett av de två sätten.

Allmänt

Vi gör i år ett experiment som innebär en ökad grad av direkt feedback från Kattis. Syftet är dels att tävlingen förhoppningsvis ska bli roligare för er, dels att minska lidandet för oss, för vi lider verkligen när ni gör en liten bug som omkullkastar en annars korrekt lösning på ett svårt problem.

Två av de sju uppgifterna (nr 1 och 2) har fullständig rättning direkt vid inskickning. Får man Accepted där har man alltså redan full poäng (100) på dem. Övriga uppgifter har direkt rättning på 40 % av indatan. Får man Accepted där har man alltså 40 poäng garanterade. Resterande rättning görs efter tävlingens slut och ENDAST om man har sina 40 grundpoäng.

Eftersom vi samtidigt inför möjligheten att använda valfria språk kommer den delen av indatan som rättas direkt att vara öppen, d.v.s. fritt tillgänglig på uppgiftssidan. För att det inte ska bli löjligt lätt (och meningslöst) ges därför ingen detaljerad feedback vid inskickningen utan endast Accepted eller Wrong answer (eller de övriga felkoderna). Man vet alltså inte på vilket testfall programmet fallerar.

Systemet med öppen indata betyder i praktiken att ingen exekveringstidsgräns förekommer på denna del (utom tävlingstiden fem dagar förstås). Den öppna delen av testdatan omfattar normalt de "små" testfallen som i vilket fall som helst inte kräver speciellt effektiv algoritm, men undantag kan finnas t.ex. där indatan inte kan ha olika storlek. Observera att 40 % är ganska generöst tilltaget för brute force-lösningar, så man ska inte förvänta sig ytterligare "enkla" poäng bland de 60 % stängda testfallen (men undantag kan förekomma där också).

Standard-submission

Detta går till som tidigare och som beskrivs på Kattis-sidan. Notera att samma tidsgräns gäller för de öppna som de stängda testfallen. Om du får Time limit exceeded på den öppna delen kan du alltid skicka in uppgiften med utdata-submission.

Utdata-submission

Denna typ av submission görs genom att i rutan språk välja "output" istället för något av programmeringsspråken. Endast en ensam fil (eller inklistrat innehåll i rutan) kan skickas vid denna typ av submission. För att en submission ska ge poäng i tävlingen ska den dock innehålla två saker: dels utdatan som korresponderar mot den öppna indatan, dels källkoden du använt för att lösa problemet (om du har löst det för hand får du förklara hur du gjort istället, så program är roligare). Lämna några rader tomt mellan utdatan och källkoden. Kattis kommer bara bry sig om utdatan (om formatet är korrekt förstås), men vi vill ha källkoden för att se hur du gjort.

Om du vill att vi ska rätta ditt program på den stängda delen av testdatan så att du kan få mer än 40 poäng på uppgiften, inkludera kommentaren VILLHAMER i början av programmet. Du kan också inkludera kontaktuppgifter så vi kan nå dig om vi behöver hjälp med att köra programmet (annars använder vi den epostadress du är registrerad på kattis med). Observera att vi manuellt endast rättar program som är skrivna i ett annat språk än C, C++, Pascal eller Java, d.v.s. inte om du bara använder dialektal syntax som inte kattis-kompilatorerna klarar. Använder du t.ex. Visual C++ eller Delphi så ska du alltså begagna dig av standard-submission för att få rättning på den stängda delen. Det finns många internetsidor som hjälper dig med konverteringen till gcc respektive FreePascal.

För att generera utdatan använder du den öppna indatafilen som finns som en länk överst på uppgiftsidan. Denna börjar alltid med ett heltal W som anger antalet testfall som finns i indatafilen. Därefter följer indatan för W testfall, där vart och ett följer indataspecifikationen i den specifika uppgiften du submittar. När du skriver programmet så tillkommer alltså en extra yttre loop som inte ska vara med ifall du skickar programmet med standard-submission. Och glöm inte att initialisera eventuella variabler inuti denna loop. Utdatan ska helt enkelt vara utdatan för varje testfall direkt efter varandra i samma ordning som i indatafilen. Var noga med att avsluta alla rader med newline men observera att det inte får vara några extra rader mellan utdataseten (efter alla utdataseten gör det däremot ingenting).

Övriga regler

  • Tävlingen äger rum på Internet under fem dagar, 1-5/2.
  • Tävlingen består av ett antal uppgifter som samtliga ska lösas genom ett datorprogram.
  • Uppgifterna kan lösas i valfritt programspråk, men om du anänder ett språk som inte finns i Kattis (d.v.s. ett annat än C, C++, Pascal eller Java) gäller en särskild procedur (se ovan) och för att du ska kunna få full poäng på alla uppgifter krävs att vi arrangörer lyckas köra programmet, gärna med assistans av dig om vi får problem. Vi förbehåller oss rätten att ge upp om vi inte lyckas köra det med rimlig ansträngning. Det är tillåtet att byta språk mellan olika uppgifter.
  • Dina lösningar kommer att testköras med
    förpreparerade indata. Full poäng på en uppgift ges om programmet klarar alla testerna. Delpoäng kan utdelas då programmet klarar somliga tester. Ingen närmare bedömning av programkoden görs.
  • Varje uppgift har en tidsgräns. Om exekveringstiden överstiger denna tidsgräns bedöms programmet för det testexemplet som felaktigt.
  • Om, vid rättningen, fel uppstår vid kompilering bedöms programmet direkt som felaktigt och lösningen ger 0 poäng.
  • Ingen test av indata behöver göras. Alla testdata följer de specifikationer som givits i uppgiften. Om det trots detta, vid rättningen, uppstår exekveringsfel vid körning av programmet bedöms programmet som felaktigt för det testexemplet.
  • Rättningen utförs av det automatiska rättningsprogrammet Kattis efter tävlingstidens utgång. Det är upp till den tävlande att se till att lösningen beter sig som Kattis vill, i synnerhet att koden kompileras korrekt med Kattis kompilator samt att in- och utdatahanteringen följer uppgiftsspecifikationen och Kattis allmäna regler.
  • Lösningarna ska skickas in via Kattis. Det är tillåtet att obegränsat antal gånger skicka in en ny lösning på en uppgift som man redan tidigare har skickat in. Den tidigare lösningen ersätts då av den nya. Om en lösning inkommit efter tävlingstidens utgång ges inga poäng för denna uppgift.
  • Deltagandet är individuellt vilket bland annat innebär att inget utbyte av idéer eller filer, varken uppgifter eller lösningar, får ske under tävlingen. Naturligtvis kommer utbyte av idéer inte kunna kontrolleras, men alla som är med i tävlingen förväntas följa reglerna. Vi vill också poängtera att det är helt meningslöst att på ett otillåtet sätt ta sig till finalen, eftersom inga priser av något slag förekommer. Om du har behövt fuska dig till finalen har du ingen som helst chans till en topp-placering där.
  • Kattis innehåller säkerhetssystem för att automatiskt detektera fusk. Vi har också möjlighet att i efterhand gå in och kontrollera alla insända bidrag. Om fusk upptäcks kan resultatlistan komma att korrigeras efter att den publicerats.
  • Hjälpmedel: Allt tillgängligt material utom källkod som är skriven av någon annan, inte ens om den modifieras. Det är däremot tillåtet att använda kod som du själv skrivit tidigare.
  • Vi förbehåller oss rätten att i efterhand avgöra hur stor del av finalplatserna som tillsätts genom online-kvalet.

Anmälan till Online-kvalet

Om du ännu inte har fått ett Kattis-konto så lämna det fältet blankt. Du kan naturligtvis börja lösa uppgifterna ändå.

Namn:

Födelseår:     
Klass:

Skola och ort:

E-postadress:

Kattis-ID:

Jag deltar antagligen också i en kvaltävling på skolan.
Jag har läst och accepterat reglerna

Övriga kommentarer:

Sidansvarig: Pär Söderhjelm < par.soderhjelm@teokem.lu.se >
Uppdaterad 2012-02-01