| Uppgift | Rättning | Tidsgräns | Minnesgräns |
|---|---|---|---|
| Hitta talen | 30 % omedelbart, resten efter tävlingen | 4 sek | 64MB |
| Muren | 30 % omedelbart, resten efter tävlingen | 4 sek | 64MB |
| Young-diagram | 30 % omedelbart, resten efter tävlingen | 4 sek | 64MB |
| Förbjudna delord | efter tävlingen | 4 sek | 64MB |
Länkarna fungerar endast under tävlingstiden.
Du kan få en överblick över hur det går för andra tävlande genom att titta på resultatsidan. Omedelbart efter tävlingens slut visas där de riktiga resultaten istället.
Om du har frågor som inte besvaras på denna sida, kontakta Pär. Jag kommer finnas hyfsat tillgänglig på mail under tävlingstiden.
Lycka till!
/Tävlingskommitten: Jimmy Mårdell, Arash Rouhani och Pär Söderhjelm
Eftersom vi använder onlinedomaren Kattis är de tillåtna språken i KATT-tävlingen begränsade till C, C++, Pascal och Java.
Observera alltså att det inte går att skicka in i andra språk som det gjorde i onlinekvalet. Anledningen är dels att det är svårt att sätta rättvisa tidsgränser om man tillåter många språk, dels att systemet med delvis öppen indata inte lämpar sig för KATT-uppgifterna. Vi beklagar att vissa inte kan använda sitt favoritspråk, men hoppas att ni försöker ändå.
Har du inget konto på Kattis, fyll i anmälan här. På samma sida kan du hitta mer information om systemet. Tänk på att kontot inte kommer att skapas ögonblickligen, så se till att göra det innan tävlingen börjar.
KATT består av fyra uppgifter (under tävlingstiden finns länkar till dessa på denna sida). Varje uppgift kan ge 10 poäng som mest. Ni som redan testat Kattis-systemet vet att poängen som där delas ut alltid är mellan 0 och 100; denna poäng kommer således att divideras med 10. Det är alltså 40 poäng som står på spel i KATT. Denna poäng kommer att adderas till poängen i PO-finalen. Lagen till IOI och BOI kommer att tas ut baserat på denna summa.
Observera att till skillnad från onlinekvalet och förra årets KATT så finns det ingen uppgift som ger full feedback. I samtliga fall är det alltså rekommenderat att utföra egna tester för att vara säker på att programmet är korrekt och tillräckligt effektivt.
Viktigt om tidsgränser: Varje uppgift har en tidsgräns (som anges på denna sida under tävlingstiden). Denna maxtid är alltså den som gäller på den dator där Kattis kör, vilket råkar vara en rätt gammal dator (detta är sista året vi använder den). Räkna med att era program kanske är 5-10 gånger långsammare på Kattis än på era egna datorer. Om ni vill prestandatesta era lösningar på Kattis kan ni göra det genom att fejka stora indata, och se vad exekveringstiden blir. Eftersom inläsning m.m. tar lite extra tid med Java så ges en sekund extra för Java-lösningar. I övrigt är skillnaderna i exekveringstid mellan C++ och Java så liten för exempellösningarna att gränserna har satts lika.
Det är inte tillåtet att samarbeta eller ens diskutera uppgifterna med någon annan när ni löser KATT-uppgifterna. Självklart får man inte heller be om hjälp "anonymt" på nätet. Det är dock tillåtet att använda sig av material som redan ligger på internet, t.ex. om ni behöver kolla upp pseudokod eller dylikt för någon generell algoritm (t ex Programmeringsolympiadens träningssida.). All kod som skickas in måste dock vara skriven av er själva. Om det uppdagas att någon brutit mot dessa regler kommer den personen få 0 poäng.
Observera att programmet ska läsa från standard input och skriva till standard output, samt att programmet inte får skriva ut någonting mer (t.ex. debugutskrifter) än det som anges i uppgiften. Däremot ignoreras extra whitespace.
Vi ger här ett exempel på hur man kan läsa in följande indata:
4 6
3.22 Text
#include <stdio.h>
...
int a1, a2;
char word[100];
double d;
scanf("%d %d", &a1, &a2);
scanf("%lf %s", &d, word);
import java.util.*;
import java.io.*;
...
Kattio io = new Kattio(System.in, System.out);
int a1=io.getInt(), a2=io.getInt();
double d=io.getDouble();
String word=io.getWord();
...
io.println("blabla")
io.close()
#include <iostream>
using namespace std;
...
int a1, a2;
char word[100];
double d;
cin >> a1 >> a2;
cin >> d >> word;
import java.util.Scanner;
...
Scanner sc = new Scanner(System.in);
int a1=sc.nextInt(), a2=sc.nextInt();
double d=sc.nextDouble();
String word=sc.next();