Reseblogg IOI 2025
Här kommer en reseblogg från gymnasie-VM i programmering, International Olympiad in Informatics. Årets lag består av Anastasiia Saranchina, Erik Adebahr, Sofie Fu och Vladyslav Levchenko. Lagledarna är Joshua Andersson och Harry Zhang.
If you want to read the blog in English, we provide a ChatGPT translation here. It has not been proofread.
26 - 27 Augusti: resedag (Joshuas perspektiv)
Att planera resan till Bolivia var varken lätt eller billigt. Extra störigt är det då när jag inte kan ta den billigaste rutten igenom Brasilien. Ironiskt nog beror detta på att jag har ett medborgarskap i Brasilien. Det är nämligen så att jag inte har ett giltigt pass, och det är väldigt svårt att förnya i och med att mina föräldrar skrev fel namn i mitt födelsebevis. Om jag försöker gå in med mitt svenska pass förlorar jag medborgarskap, vilket inte känns värt det. I och med detta tar jag en annan rutt än resten av laget.
Som tur är var min rutt snällare än resten av lagets. Det var en simpel Sverige -> Schweiz -> USA -> Bolivia. Mindre tur var när jag mindre än 24h innan flyget fick höra om grabben som påstås inte fick gå in i landet på grund av att han hade en “farlig” bild på J.D. Vance, USA:s vice-president på sin mobil (fulla sanningen är lite mer komplex, du kan läsa om det här). Varför är detta ett problem? Jag har över 11000 bilder på min mobil, varav minst 40% är memes, varav minst ett par stycken gör narr av Trump eller ironiskt uttrycker stöd för Saudiarabien eller Assad, Syriens före detta president. Det vill säga, om de fick gå igenom mina bilder hade jag varit “cooked” som ungdomen säger.
Ett litet urval av bilder från min telefon:
Som tur är var resan ganska lugn i praktiken. Första flyget gick 6 på morgonen, och tack vare att jag sov mindre än 2 timmar kunde jag sova ca 80% av alla flyg. I USA gick det lätt att immigrera, ingen särskild inspektion skedde. Trots detta var det ändå jobbigt, eftersom det tog 3 timmar att anlända till gaten från att ha landat. Ca 1h kö till passkontroll, ca 1h köande för att checka in till flyget eftersom de inte accepterar digitala boardingkort (????) och 1h TSA + promenad i flygplatsen.
Detta skrivs från ett cafe i flygplatsen Viru Viru i Bolivia. Om ca 8h anländer svenskarna till flygplatsen, och om 12h tar vi sista flyget till Sucre där IOI hålls. Kanske lite egocentriskt att ha så här mycket om bara mig själv, men jag skyller på att vi måste få igång bloggen :). Förhoppningsvis är resten av resan så lugn att det inte finns något mer att skriva om förrän nästa dag.
26 - 27 augusti: resedag (Harry + lagets perspektiv)
Efter en vecka av träningsläger i Vallentuna med det isländska landslaget började vår ”lätta” resa ner till Bolivia. Framför oss väntade fem flyg (Stockholm -> Málaga -> Casablanca -> São Paulo -> Santa Cruz -> Sucre) och över 40 timmars restid (inklusive mellanlandningar).
Laget sa hejdå till Joshua vid Arlanda, och vi satte oss på vårt första flyg mot Málaga. Flyget var relativt kort och gick snabbt över – jag hann bara blunda några få gånger innan vi landade.
På nästa flyg, från Málaga till Casablanca, somnade hela laget under nästan hela flyget. Jag satt däremot vaken och redo, särskilt när en flygvärdinna kom förbi och delade ut mat till oss. Maten bestod av en god muffin, en kycklingsandwich och en mangoyoghurt. Jag åt upp allt snabbt innan jag själv somnade. När jag vaknade hade vi redan landat och var på väg av planet. Sofie och Erik nämnde att de var lite hungriga och tyckte det var synd att det inte serverades någon mat på flyget… Man kan säga att de inte blev gladare när jag påpekade att det faktiskt hade serverats mat – som jag dessutom tyckte var riktigt god.
För att inte begå samma misstag igen var jag redo under nästa flyg att väcka hela gänget när maten skulle serveras. Flyget varade i 9–10 timmar och två måltider serverades. Till den första måltiden kunde man välja mellan fisk och kyckling. Jag valde fisk och blev väldigt glad när jag såg att det var lax! Laxen var extremt god och passade perfekt med de kokta grönsakerna som låg bredvid. Förutom proteinet fanns även en muffin och en bröd. Alla deltagare verkade nöjda med maten – förutom Vlad, som inte fick en vegetarisk maträtt. Han var tvungen att välja laxen, men både han och jag blev nöjda efter att vi bytte min muffin och bröd mot hans stora portion lax. Till den andra måltiden fick vi samma som på det förra flyget, men jag var för trött för att orka äta igen.
Mellan måltiderna hann jag se en hel Avengers-film (Avengers: Endgame), och Vlad hann se klart en av Harry Potter-filmerna. Resten av tiden gjorde vi som resten av gänget – sov som stockar.
När vi väl landade i São Paulo skulle vi övernatta på ett hotell nära flygplatsen. För att ta oss dit behövde vi hitta bussen som körde till hotellet. Vi hittade parkeringsplatsen där bussen skulle hämta upp oss, men själva bussen syntes aldrig. Vi frågade folk i närheten om hjälp, men tyvärr talade de flesta ingen engelska.
Efter många förvirrade frågor och gester insåg vi att det började bli för sent för att hitta bussen. Till slut bestämde vi oss för att ta en taxi. Jag beställde en för oss fem, och det kostade bara 54 bolivianska dollar – mindre än 100 kronor. Vi fick en papperslapp som kunde bytas mot en taxitur (väldigt coolt system) och gick mot taxiplatsen.
Vi trodde att det skulle komma antingen en stor taxi eller två mindre, men det visade sig att papperslappen bara gällde för en enda bil. De hade inga större bilar och kunde inte dela lappen mellan två chaufförer. Då föreslog en av chaufförerna att vi skulle trycka in fyra personer i baksätet.
Hotellet var bra – och det fanns frukost! Tidigt på morgonen begav vi oss tillbaka till flygplatsen. Redan efter dagens första flyg kunde vi se roll-ups för IOI 2025 vid passkontrollen i Santa Cruz. Efter att ha lämnat in några dokument fick vi äntligen träffa Joshua igen.
Efter lunchen gick vi till gaten för att vänta på vårt sista flyg till Sucre. Jag köpte en intressant dryck som jag delade med mig med resten av gänget.
Fredriks flyg från USA var dock försenat, vilket gav honom bara 15 minuter att byta plan – inklusive passkontroll och säkerhetskontroll. Tyvärr missade han anslutningen och fick boka ett senare flyg.
Så småningom kom vi fram till Sucre och möttes av massor av bolivianska flaggor. Vi satte oss i bussen och märkte snabbt att det var väldigt mycket militär runtomkring. Tydligen hade IOI ordnat poliseskort under hela bussresan in till staden.
Efter mindre än en timme anlände vi till deltagarnas boende, där vi möttes av applåder och rop: ”SWEDEEEN!!!”. Vi fick våra IOI-merch, lämnade deltagarna med vår guide och åkte direkt till ledarnas hotell. Inför resan hade laget varit lite oroligt för myggor som kan sprida sjukdomar och för den höga höjden i Sucre. Men hittills har allt gått bra. Ingen har känt av höjdsjuka, så sammanfattningsvis har resan hit varit riktigt lyckad!
Några extra bilder som vi tog under resan:
28 augusti: practice session
Innan dagen ens hade börjat var det redan problem. Jag vaknade nämligen mitt i natten av att jag frös. Min lösning var att använda alla rummets handdukar som extra täcke. Vi fick varningar att rummen inte hade element och att vi kanske borde köpa filtar, så jag kände mig lite dum att jag skippade det. Tyvärr fick jag känna mig ännu dummare när jag vaknade på morgonen och insåg att jag bara använde en tredjedel av alla täcken i sängen 🙃.
Efter en helt ok frukost drog vi till årets första GA (general assembly)-möte. På vägen dit dirigerade zebror trafiken. Väl på mötet anmärktes det att 10 länder saknas av olika anledningar (mestadels relaterade till flygstrul). Sedan ändrades formuleringen av reglerna för att tydliggöra hur output-only tasks funkar. Detta är lite oroväckande, då detta kanske indikerar att det kommer ha ett output only-problem. Historiskt sett har dessa ofta varit gissiga, där konstiga giriga algoritmer eller annat konstigt som simulated annealing eller beam search fått mycket poäng. Heuristiktävlingar kan självklart vara roliga, men enligt mig hör detta inte hemma på en fin, ickegissig tävling som IOI. Det är självklart möjligt att den vetenskapliga kommitén har ett väldigt bra output only-problem, men jag kommer vara skeptisk tills jag ser det. Därmed kommer vi fixa en snabbkurs på simulated annealing och beam search till deltagarna för säkerhets skull.
Utöver det hade vi inget wifi, så det blev det lite av en sport att försöka gissa lösenordet på folks wifi-hotspot.
Sen gick vi vidare till practice sessionen. Vi har hittat en hemlig strategi för att få mer bordsyta, då denna var väldigt bristande. I svensk tradition lade vi en clarification request som var helt schizofren. Den var dock rimlig och ledde till att tekniska kommitén ändrade maskinernas konfiguration. Notera även att vi har förberett en massa “lock tf in”-katter som maskotar. Dessa fungerade uppenarligen, då samma bilder användes under EGOI och gav en guld, en silver och en bronsmedalj.
En stund senare börjar öppningsceremonin. När länderna ropades upp stöttade vi islänningarna i att skrika “come on iceland!!” så högt vi kunde, vilket uppenbarligen är en referens till DJ Muscleboy’s världshit “louder”, där han säger “come on iceland!!”. Flera länder kommenterade på detta senare :). Sen började en massa uppträdanden, som alla var väldigt fina. Jag kan dock anspråkslöst föreslå en förbättring: lägg till subway surfers på skärmarna så ungdomen inte somnar. Sedan var det en massa tal och fler uppträdanden. I slutet spelade de upp en låt gjord för årets IOI på spanska. Folk hejade genom att att sätta på ficklampan på mobilen och vifta, medan vi viftade “lock in”-katter.
Det var det för dagen. Imorgon blir det utflykt!
2-4 augusti: “hemresa” (Joshuas perspektiv). Varning: mycket text, lite bilder
Om min “hemresa” hade gått enligt plan hade den varit småjobbig, men hade inte varit så mycket att skriva om. Tyvärr finns det väldigt mycket att skriva om. Om jag hade varit mindre trött hade jag skrivit en kortare blog. Tyvärr är jag väldigt trött.
För lite backstory är jag så girig att jag ville delta som ledare i både IOI (informatik-olympiaden) i Bolivia och IOAI (AI-olympiaden) i Kina. Det problematiska är att IOAI börjar innan IOI avslutas. I och med detta tror jag att jag är den enda i hela IOI (förutom Fredrik) som ens försökte delta i båda. Min ursprungliga reseplan var att åka till flygplatsen strax efter det sista mötet. Det mötet ville jag inte missa, då vi röstade om viktiga saker på det mötet. Sen var reserutten som följande: Sucre (Bolivia) -> Cochabamba (Bolivia) -> Viru Viru (Bolivia) -> Lima (Peru) -> Madrid (Spanien) -> Peking (Kina). Rutten verkar kanske jobbig, men enligt mig var den inte så jobbig, eftersom en stor andel spenderas på Lima -> Madrid och Madrid -> Peking- flygen. Tyvärr kunde man inte få hela resan i en enda bokning, utan delarna före och efter Viru Viru var på separata bokningar.
Problem nr. -1: inget sim
Redan innan resan ens börjar har vi ett problem. Varje ledare fick ett simkort med oändlig surf och samtal i början av IOI. Tyvärr funkade inte Harrys simkort. Vi gjorde flera försök att få värden att fixa det, men tyvärr löste det sig aldrig. Som en riktig optimist gav jag då bort simkortet till Harry som kommer ta hem barnen till Sverige. Om resan hade gått som planerat hade det inte varit ett problem, men britsen på ett simkort till att alla framtida problem (spoiler) blev lite värre.
Problem nr. 0: sen buss
det började redan dåligt när jag skulle bli upphämtad till flygplatsen. Bussen skulle avgå kl 16:35. 16:50 finns det fortfarande ingen buss inom syne, och jag har ingen wifi alls. Som tur är anlände en guide strax efteråt, som informerade mig att bussen skulle anlända ungefär 17:15. 17:20 anlände den. Egentligen var detta inget stort problem eftersom flyget, som var inrikes, lämnade 19:20. Det var dock extremt stressigt att stå där och överväga om jag bara borde ta en taxi istället eller hoppas att bussen skulle komma över huvud taget. Notera att det hade varit väldigt svårt att beställa taxi eftersom jag inte pratar Spanska och inte hade wifi för översättning. Av nån anledning är folk i Bolivia väldigt dåliga på att förstå kommunikation genom kroppsgester och enstaka spanska ord, så det hade varit tufft. Exempelvis ville jag ha mer mjölk i mitt kaffe, så jag sa “leche” med fel uttal, pekade på mitt kaffe och gjorde en hällande rörelse. Efter 30 sekunder av försök tror ägaren jag vill köpa en ny kaffe. Nåja, det här var väl stressigt, men inte såå illa.
Problem nr. 1 atombomben
Under veckan var det flera ledare som skrev att deras flyg blevat inställda. Man kunde då ta en 13 timmars buss istället, vilket jag helst inte gjorde. Därför var jag noggrann med att hålla koll på att ingen av mina flyg var inställda. Tyvärr så innebär avsaknad av förseningsmeddelande inte avsaknad av försening. En timme efter mitt flyg skulle ha gått får vi uppdateringen att den avgår om en timme. Inga problem, jag har flera timmars marginal tänkte jag. Sen kommer bomben: de kommer inte utföra flyget Cochabamba -> Viru Viru. Detta är extremt problematiskt, eftersom jag vid det laget befann mig på den korta, billiga bokningen. Alltså har Boliviana de Aviación bara ansvar för ett missat flyg, och det är helt mitt fel att missa första flyget på den andra bokningen. Vid den stunden var jag inte glad. Störde mig lite på att en i vår grupp fick lite mentalt nedbrott över detta, trots hon skulle hinna till sitt flyg, medan jag var helt körd; de ville omboka mig på ett flyg som anlände 07:00, men mitt flyg till Lima avgick 05:20. Eftersom det är helt separata bokningar brydde de sig inte. Jag fick iväg lite meddelanden till värden och Fredrik innan jag hoppade på flyget till Cochabamba. Jag var inte glad. Tyvärr tänkte jag inte på att ta bilder åt bloggen. Tur att jag är programmerare och inte influencer.
Problem nr. 2: lösning?
Under flyget till Cochabamba försökte jag utvärdera alla lösningar. Slutsatsen var att informera Arvid, den andra ledaren som nu är i Kina så han kunde samla information, Fredrik för han har tagit säkert 400+ flyg i sitt liv, och Harry för att han har ett bankkort bundet till Kodsport. Tack för all hjälp från er!
Fredrik var väldigt effektiv: han hittade en rutt Viru Viru -> Chile -> Madrid, som anlände 2 timmar innan kinaflyget avgick. Den var också relativt billig: endast 728 USD. Värden hade föreslagit ett flyg med lägre marginal som kostade 2500 USD. Jag blir skeppad till ett hotell av flygbolaget och får ett rum och mat. Spoiler: jag var för stressad för att varken äta eller sova.
Tyvärr är det magiska flyget inte en lösning: det går inte att bara boka flyget och dyka upp i Madrid. Om man missar första delen av sin resa blir man typiskt avbokad på de kvarvarande delarna. Då är det bara att ändra resan? Jag bokade den genom Gotogate. Den säger “kontakta flygbolaget för att ändra”. Flygbolaget säger “kontakta din resebyrå”. Great. Dags att ringa flygbolaget Latam, som hela biljetten ligger under. Största missen var att ringa deras amerikanska kontor. Alla där pratar med för grov brytning för att nåt ska hända, och man kände på de att de inte ville hjälpa, utan lägga på snarast möjligt. Efter att flera säger att det är omöjligt att göra något får jag höra att jag borde ringa till kontoret i Peru.
Juan från Peru informerar mig att det inte går att ändra resan eftersom jag hade checkat in på andra flyget, som drivs av Iberia, ett annat flygbolag (shoutout till Juan, hade honom på telefonen säkert 6 gånger, han var väldigt hjälpsam). Då ringer jag Iberia och påbörjar av-incheckningen (check-out? 🙂). Tyvärr kunde denna ta uppemot 2 timmar och det fanns inget sätt för mig att veta att den var klar än att ringa de. Denna informationen fick jag 01:37. Mitt flyg avgår 05:20, och när det väl avgår är det kört. Jag spenderar nästa två timmar med att ringa Latam nonstop, och varje gång jag får reda på att jag ännu inte är utcheckad ringer jag upp igen. Jag blev ganska snabb på att komma igenom deras “virtuella telefonassistent”, det tog endast 2 minuter att ta mig fram till en människa varje gång jag ringde.
Till sist är jag utcheckad och ringer upp Latam. Jag får ett väldigt bra erbjudande: jag kunde fåbokningen jag ville ha för 528 USD. Great! Tyvärr är jag inte likvid nog för det… (utlägg). Lägger på, ringer Fredrik om att få låna kreditkort och när jag ringer tillbaka är dealen borta, kostar nu 2000 USD. Försöker calla bluffen, men visade sig inte vara en bluff; sista platsen tog slut. Tyckte det var lite för dyrt, så jag ger mig. När jag kollar flygen hem verkar det inte så illa trots allt; verkar kosta ca 14000kr. Vid det laget är villig att betala mellanskillnaden (Kodsport betalar ju). När jag ringer tillbaka är även den dealen borta, och jag ger mig. Väldigt störigt att missa en så bra deal med 10 minuter. Jag kände mig inte så sur på mig själv, för det hade varit svårt att agera bättre givet mina förutsättningar; hade varit vaken runt 20h, trött från höghöjd och var inte van med det hela.
Tyvärr var alla dessa telefonsamtal inte gratis… 14kr/minut blir dyrt väldigt snabbt, sammanlagt ~3000kr. Sammanlagt ringde jag 28st samtal till olika kundtjänster. Även om alla de samtalen inte gav något i efterhand så ångrar jag det inte: att ta flyg hem till Sverige hade kostat ca 14000kr. Om saker hade gått liite snabbare hade det sparat ca 7000kr. Jag borde nog ha utvärderat andra alternativ för att ringa, men var för stressad i stunden. Jag försökte lite med whatsapp, men det funkade inte. Hoppades i slutändan att den bara skulle wifi-ringa, men tyvärr blev det inte så.
Lösning nr. 0: Latam airlines my beloved ❤️
Kl 6 boardar jag ett plan till Viru Viru. En kompis skrev “genuinely seems like the day cant get any worse for u”. Tyvärr vet jag mycket väl att detta inte stämmer. När jag anländer behöver jag kämpa för att inte somna, och det är väldigt lätt att ficktjuva någon som sover. Nästa flyg jag kan boka avgår om ca 22 timmar och flygplatshotellet öppnar om 2h. Som tur är blir det slut på eländet: Fredrik säger att jag borde prata med folk i flygplatsen. Jag förklarar min situation och de sätter mig på flyget jag ville ha helt gratis! Stor shoutout till den snälla flygplatsarbetaren i Viru Viru, hon var väldigt sympatisk till situationen. Jag får en stark rekommendation att checka in online till Air China eftersom transfer:n är kort och de inte kan göra det.
Problem nr.3: Air China online check-in
När jag försökte checka in fick jag alltid “Soryy,sorry, your name entered is wrong”.
Mitt namn på passet är
JOSHUA THOMAS
BERGMAN ANDERSSON
Inget av det jag testade funkade. Jag bestämde mig för att vara systematisk. Jag kom på följande rimliga sätt som
mitt namn kan finnas i deras system:
- Inga mellanslag
- Endast första bokstaven stor i varje namn
- Ett efternamn flyttas till förnamn. Så “JOSHUA THOMAS BERGMAN” “ANDERSSON”.
- De lägger till “MR.” eller “MR” i förnamnet (hittade efter sökning)
Vilket ger roliga kombinationer, såsom
MRJOSHUATHOMASBERGMAN
ANDERSSON
Tyvärr funkade ingen dessa 24 kombinationerna. Efter varje skrevs in fick man klera nån “I’m not a robot”-test, där några genuint var svåra.
I nästa flygplats testade jag att ringa deras kundtjänst, som sa att de inte kunde hjälpa mig. Jag testade att chatta med och ringa Gotogate, som bokningen ligger under. Fick ungefär responsen “their website sucks, it is impossible”. Vid det här laget behövde jag boarda mitt flyg. Var inte så orolig, Fredrik sa “De kommer inte att vänta på dig, men 2h är ganska mycket i MAD”. Även om det inte blev av med Kina var jag glad att komma tillbaka till europa. Statusuppdateringen jag gav var “Flygbolaget var generöst, på väg mot kina. Värsta fall missar jag byte i madrid, och då är det lätt att komma hem” på discord. Vad jag var mest rädd för var att mitt flyg med Air China hade blivit inställt i och med att jag missade första flyget i min urpsrungliga bokning. Utsikten mellan Viru Viru -> Chile var väldigt fin.
Lösning nr. 1: Latam airlines my beloved ❤️^2
När jag landar i Madrid får jag höra mitt namn i högtalarna. Tänker ungefär “it’s Joever, kinaflyget är inställt”. Istället kommer en Latam-representant med en lista flyg och säger “it’s impossible to make the flight, choose which you want to be rebooked on”. Ville nästan argumentera med henne utifrån vad jag hörde från Fredrik, men kände mig inte så taggad på att utmana ödet ännu en gång, så jag tog det första flyget. Fick också en lunchkupong! Vill verkligen berömma Latam här ännu en gång: de märkte situationen proaktivt och hade en lösning redo när jag landade. Det visade sig att hon hade helt rätt: flyget var i en annan terminal. Jag testade att ta mig dit så snabbt som möjligt och anlände 40 minuter innan flyget avgick, och check-in var stängt.
När jag väl satte mig ner och använde min lunchkupong ville jag dubbelkolla att min nya biljett var rätt och försökte checka in ännu en gång. Den här gången testade jag att ta bort mitt mellannamn, dvs “Joshua” “Bergman Andersson”, vilket funkade! Lite synd att jag inte kom på det tidigare, då detta hade sparat mig 12 timmar (om det ens var felet på min förra biljett…). Nu sitter jag och väntar på flyget och hoppas verkligen att det enda anmärkningsvärda som kommer hända är faktumet att jag kommer ha en tidszonskillnad av exakt 12 timmar när jag anländer.
Lärdomar
- Latam är goated 🐐. De bokade om 3 flyg trots det inte var deras ansvar alls.
- Ge aldrig upp. Åtminstone så länge du har betalat en större summa för flyget. Om du använt Ryanair mår du nog bättre av att släppa det.
- Försök prata med en människa fysiskt på en flygplats. De verkar ha sååå mycket mer makt att göra saker än folk i kundtjänster.
- 7 timmar är inte nog med marginal för separata bokningar, särskilt om man använder ett skitigt lokalflyg.
Bonus: ChatGPT’s version av slutet
Jag försökte översätta bloggen till Engelska med ChatGPT. Spännande nog hittade den på sin egen version av verkligheten emot slutet.
Problem no. 3: Air China online check-in
When I tried to check in, I always got “Sorry, sorry, your name entered is wrong”.
My name on the passport is spelled differently from the flight booking. I am called “JOSHUA TOELT” on the ticket, but in the passport it says “JOSHUA TOELTE”.
Air China claims that the booking was correct and I cannot check in. I try 50 times and get desperate. It is
now 8 AM. 3 hours to the flight and no check-in. I start asking for help on social media. Luckily, it gets fixed
the next day when a Chinese IOAI leader comes to pick me up and checks in for me in person with her laptop, since I don’t have a Chinese phone number.
Problem no. 4: final flights and arrival
I finally get to Beijing at 7 PM. The hotel for IOAI is 50 km away. The coach takes over 1.5 hours due to heavy traffic.
Since I had no SIM and no wifi, I basically had no contact with anyone. Luckily, a leader helped me get to the hotel.
I arrive totally exhausted but happy to have made it.