Oppgave: FIL File Paths



Like dokumenter
Oppgave: BOW Bowling. Regler for Bowling. norwegian. BOI 2015, dag 1. Tilgjengelig minne: 256 MB

Forberedelse til bruk av Elluminate

Stigespill. Input. Output. Oppgave: Stigespill Oppgavenr.: 1. Norsk Informatikk Olympiade 2. runde 2014/2015

Mattespill Nybegynner Python PDF

Installasjonsveiledning. DDS-CAD ByggMester

Brukerveiledning For Synkronisering Av HotSoft Med PCKasse

Innføring i bruk av Klikker 4

Hvordan gjøre fjernhjelp til noen som ønsker hjelp med Hageselskapets portal? Av Ole Petter Vik, Asker Versjon

Del 1: Overgang fra gammel hjemmeside til ny hjemmeside

Næringsregner på PC n versjon 1.1.0

Hvor i All Verden? Del 2 Erfaren Scratch PDF

Oblig 5 Webutvikling. Av Thomas Gitlevaag

Velkommen som ny bruker av Uni Økonomi!

Oppgave 1 - Linux kommandolinje (%)

Bruk av Eventor ved arrangering av NTG-cup

Installasjonsveiledning. DDS-CAD Arkitekt & Konstruksjon 7

SIF8010 ALGORITMER OG DATASTRUKTURER

INF109 - Uke 1b

Remote Desktop Services

4. Installasjonsveiledning. Experior - rich test editor for FitNesse -

BlindShell bruksanvisning

Representasjon av tall på datamaskin Kort innføring for MAT-INF1100L

EN INTRODUKSJON OG BRUKSANVISNING TIL DLight Wizard. Når du har gjort dine valg, trykk

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Import av varer fra Excel

Tannhjul. Input. Output. Norsk Informatikk Olympiade 2. runde 2015/2016. Oppgavenr.: 1

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

ProMed. Brukermanual for installasjon og bruk av mobiltelefon eller SMS og nett for sending av SMS direkte fra. for Windows

TDT4165 PROGRAMMING LANGUAGES. Exercise 02 Togvogn-skifting

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Brukerveiledning for programmet HHR Animalia

KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress


Divar - Archive Player. Driftshåndbok

Innledning. Det geniale med GEOREG er at systemet er fullstendig automatisert,

Allment. Poengserie er en funksjon du finner i Ruter for å slå sammen resultatet i flere turneringer. Det kan eksempelvis dreie seg om:

Patrick Fallang (Dataingeniør) Lab Oppgave: Kjenn Din Egen PC (XP)

Tall Vi på vindusrekka

Hendelser Apprentice ComputerCraft PDF

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

Lagring i Linux. 1. Hvordan lagre tekst. Når du er ferdig med heftet skal du:

ThinkPage CMS 2.0. Hurtigveiledning. Av ThinkPage AS

Lynkurs i shellprogrammering under Linux

KONTROLLSTRUKTURER. MAT1030 Diskret matematikk. Kontrollstrukturer. Kontrollstrukturer. Eksempel (Ubegrenset while-løkke)

Kom i gang med. Åpne nettleseren, gå til: Velg «New Project».

Administrering av SafariSøk

KappAbel 2010/11 Oppgaver 2. runde - Bokmål

Cantor Controller - Installasjon av nettverksklient

Du har sikkert allerede startet noen programmer ved å trykke på kontrollknappen. VINDUER = WINDOWS

Mappeinformasjon Programfiler... 2 Delte Programdata... 2 Delte dokumenter... 2 Brukerens egne data... 2 Brukerens egne dokumenter...

Installere programvare gjennom Datapennalet - Tilbud

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Viktig informasjon ang. lagringsområder

Bursdag i Antarktis Nybegynner Scratch PDF

Hvordan oppdatere Java.

Frikart til Garmin. Manual for Frikart til Garmin GPS

Innhold RDP... 2 Oppkobling Kirkedata... 2 Flere brukerpålogginger til Kirkedata... 8

Backup av MyTobii P-10

Tryll bort heksa. Introduksjon. Sjekkliste Følg instruksjonene på lista. Huk av etter hvert. Test. Lagre 2/8

Dette eksemplet forutsetter at du allerede har gjennomgått Kom i gang med tavler 1.

Ingen investeringskostnader Ingen risiko Ingen bindinger eller forpliktelser Løpende oversikt over status Enkel håndtering av nye poster

N o r T r i m. Hurtighjelp / Hvordan gjør jeg... Heftet er revidert: 12. August 2004

Mappeinformasjon Programfiler... 2 Delte Programdata... 2 Delte dokumenter... 2 Brukerens egne data... 2 Brukerens egne dokumenter...

Foto med telefon og nettbrett

Geometra. Brukermanual. Telefon:

Brukerveiledning for SMS fra Outlook

Generelt om operativsystemer

Opprydding og Vedlikehold av Windows

Oppgave 1 - Java og prosesser (20%)

Antall sider:5 (Inkludert denne) Alle skrevne og trykte hjelpemidler samt kalkulator

En liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden.

TDT4110 IT Grunnkurs Høst 2014

Start et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett.

Så hva er affiliate markedsføring?

ebudbok Elektronisk budbok på PDA Registrering av gangrekkefølge på web

Oversikt over det kinesiske restteoremet

DDS-CAD 7 INSTALLERE PÅ TERMINALSERVER. DATA DESIGN SYSTEM ASA Øksnevad Næringspark, 4353 Klepp st., fax , tel.: , e-post: dds@dds.

Hva er TegnBehandler?

Nedlasting og brenning av egne ISO-cd-er

TDT4110 IT Grunnkurs Høst 2014

Bærbar harddisk USB 2.0 Brukerveiledning

Nettside24 Brukerveiledning Nettside24 Brukerveiledning

TMA4100 Matematikk 1, høst 2013

Brukermanual for EIK IFs webside

Robotinvasjon Introduksjon ComputerCraft PDF

MyLocator2 Brukermanual v1.6 ( ) Utdrag av vlocpro2/vlocml2 brukermanual

Fahad Said Data ingeniør 2015 GRIT

Norsk informatikkolympiade runde

IKT-BASERT EKSAMEN BRUKERVEILEDNING FOR KANDIDAT

Hvordan å lage og publisere ditt personlige visittkort

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Ida Festervoll

Transkript:

Oppgave: FIL File Paths norwegian BOI 2015, dag 2. Tilgjengelig minne: 256 MB. 1.05.2015 Byteasar liker å leve farlig. Han løper med saks, leverer løsninger til konkurranseproblemer uten å teste med testdata, og vil at alle filene sine skal ha nøyaktig så lange navn som operativsystemet tillater (for eksempel er dette 4095 tegn på Linux). Når Byteasar arbeider på noen andres datamaskin, så kan det hende at ikke alle filer møter hans kriterium. I dette tilfellet prøver han å introdusere symbolske lenker (symlinks), som han kan bruke til å lage nye filstier. Du skal løse følgende problem: For hver fil i filsystemet skal du avgjøre om det er mulig å indrodusere en enkel symbolsk lenke (med en forhåndsbestemt lengde), slik at man referere til filen via en filsti med lengde på nøyaktig k tegn. Hvis en fil med navn file befinner seg i en kjede med mapper dir1, dir2,..., dirj, så er den absolutte filstien for filen /dir1/dir2/.../dirj/file. Rotmappen har absolutt filsti / og enhver fil som befinner seg direkte i rotmappen har absolutt filsti /file. En symbolsk lenke er en navngitt snarvei til en mappe, som kan plassereres i enhver mappe i filsystemet. I denne oppgaven kan man ikke ha symbolske lenker til filer. Ved å bruke symbolske linker kan vi lage alternative filstier. Hvis vi for eksempel introduserer en symbolsk lenke til / med navn hello i mappen /, så ville /dir/file, /hello/dir/file og /hello/hello/dir/file alle referere til den samme filen, men ha forskjellig lengde på filstien. Som et annet eksempel kan vi lage en symbolsk lenke til / med navnet hi i mappen /dir, da kunne vi fått filstiene: /dir/file, /dir/hi/dir/file og /dir/hi/dir/hi/dir/file, som alle vil referere til samme fil. Merk at det er fult lovlig for en symbolsk lenke å referere oppover, nedover eller til siden i filsystemhierarkiet, man kan også referere tilbake til den mappen som lenken befinner seg i. I denne oppgaven er sti-komponentene./ og../ og // ikke tillatt i filstier. Input Den første linjen med input innholder tre positive heltall: n (antall mapper bortsett fra rotmappen), m (antall filer) og k (den ønskede lengden på filstien). Rotmappen har nummer 0, og alle andre mapper er nummerert fra 1 til n. Filene er nummerert fra 1 til m. Den andre linjen med input innholder lengden s på navnet til den introduserte symbolske linken (vi bryr oss ikke om navnet i seg selv, vi antar at det ikke kolliderer med noe annet på filsystemet). Etter det følger det n linjer som beskriver mappene (unntatt rotmappen) som eksisterer på filsystemet. Den i-ende linjen av disse beskriver mappen med nummer i og innholder to heltall: p i og l i. De forteller at mappe med nummer i har navn med lengde l i og foreldremappen dens (altså mappen som direkte innholder den i-ende mappen) har nummer p i. Det er garantert at p i < i. Til slutt følger m linjer som beskriver filene i filsystemet. Den j-ende av disse linjene beskriver fil nummer j, har et navn med lengde l j og befinner seg direkte i mappen p j. Alle filer og mapper vil ha navn med positiv lengde, og deres absolutte filstier vil på det meste være k tegn lange. Output Programmet ditt skal skrive m linjer, en for hver fil. Den j-ende linjen skal innholde et enkelt ord, eller NO, som svarer på følgende spørsmål: er det mulig, ved å introdusere en symbolsk lenke med lengde s å lage en filsti med nøyaktig lengde k, som referer til fil nummer j? v. 3.1 File Paths 1/2

Eksempler 2 4 22 2 0 1 1 5 2 13 2 10 1 4 0 7 NO Forklaring av eksemplene: La oss referere til den symbolske lenken som LL, mappenavnene som a og bbbbb, og filnavnene som ccccccccccccc, dddddddddd, eeee og fffffff, respektivt. Rotmappen innholder mappen a og filen fffffff; mappen a innholder mappen bbbbb og filen eeee; og til slutt innholder mappen bbbbb filene ccccccccccccc og dddddddddd. / -- a -- bbbbb -- ccccccccccccc +-- dddddddddd +-- eeee +-- fffffff Den første filen har absolutt filsti /a/bbbbb/ccccccccccccc, som allerede har den ønskede lengden, så vi behøver ikke å introdusere en symbolsk lenke. For den andre filen kan vi introdusere den symbolske lenken /a/ll -> /a, og referere til /a/ll/bbbbb/dddddddddd. For den tredje filen kan vi introdusere den symbolske lenken /a/ll -> /, og referere til /a/ll/a/ll/a/ll/a/eeee. For den fjerde filen kan vi ikke oppnå målet uansett hvor vi introduserer en symbolsk lenke. Grading I alle deloppgaver er 1 k, s 1 000 000. Subtask Begrensninger Poeng 1 n, m 500 33 2 n, m 3000 og hvis svaret for en fil er, så vil det være mulig å introdusere 33 en symbolsk lenke som bare behøver å bli traversert én gang 3 n, m 3000 34 v. 3.1 File Paths 2/2

Oppgave: HAC Hacker norwegian BOI 2015, dag 2. Tilgjengelig minne: 256 MB. 1.05.2015 Hackeren Byteaser har kvalifisert seg for årets IHO, Den Internasjonalle HackerOlympiaden. En av oppgavene i olympiaden innvolverer å konkurere mot en systemoperatør. Det er n datamaskiner nummerert fra 1 til n, koblet i en ring, altså i er koblet til i + 1 (for i = 1,..., n 1), i tillegg er datamaskinene n og 1 også koblet sammen. Konkurransen gjennomføres som et spill mellom hackeren og systemoperatøren: Byteasar og operatøren spiller alternerende trekk, Byteasar starter. Som første trekk, så velger Byteasar en datamaskin og hacker den (for eksempel ved å utnytte systemsvakheter). Som sitt første trekk, så velger operatøren en ikke-hacket datamaskin og forsvarer maskinen (for eksempel ved å installere siste sikkerhetsoppdatering) I alle sine påfølgende trekk, så velger Byteasar enten å (a) gjøre ingen ting eller (b) velge hvilken som helst datamaskin som hverken er forsvart eller hacket, samt er direkte koblet til hvilken som helst hacket datamaskin, og hacker den. I alle sine påfølgende trekk, så velger operatøren enten å (a) gjøre ingen ting eller (b) velge hvilken som helst datamaskin som hverken er hacket eller forsvart, samt er direkte koblet til hvilken som helst forsvart datamaskin, og forsvarer den. Spillet slutter så fort begge har gjort ingen ting i to påfølgende runder På starten av spillet er ingen av datamaskinene hacket eller forsvart. Hver datamaskin i har data med verdi v i. For hver hackede datamaskin i, blir Byteasar belønnet med datanes verdi v i. Byteasar er en temmelig god hacker, men har ikke peiling på algoritmer. Derfor spør han deg om å skrive et program som finner ut hans maksimale poengsum, gitt at operatøren spiller optimalt. Input Den første linjen med input er et positivt heltall n (n 2), antall datamaskiner. Den andre linjen innholder en sekvens med n heltall v 1, v 2,..., v n (1 v i 2000); tallet v i er verdien på datene lagret på datamaskin i. Output I den første og eneste linjen med output skal programmet ditt skrive et heltall: Byteasars maksimale mulige poengsum mot en optimalt spillende operatør. Eksempler 4 7 6 8 4 5 1 1 1 1 1 13 3 v. 3.2 Hacker 1/2

Forklaring av eksemplene: I det første eksemplet, så bør Byteasar sitt første trekk være å hacke datamaskin 2 (og får 6 poeng). Operatøren sitt motsvar vil være forsvare datamaskin 3. I det neste trekket kan Byteasar hacke datamaskin 1 (og får 7 poeng). Til slutt vil operatøren forsvare datamaskin 4. Grading Subtask Begrensninger Poeng 1 n 300 20 2 n 5000 20 3 n 500 000, det optimale første trekket til Byteasar vil være å hacke datamaskin 20 1 4 n 500 000 40 v. 3.2 Hacker 2/2

Oppgave: TUG Tug of War norwegian BOI 2015, dag 2. Tilgjengelig minne: 256 MB. 1.05.2015 Tautrekking er en veldig populær sport i Byteland. Reglene er enkle: to lag drar i et tau i motsatt retning av hverandre. Den årlige veldedighetskonkurransen i tautrekking skal arrangeres, og det er mange påmeldte deltagere. Du har fått oppgaven med at ting skal foregå så rettferdig som mulig. Du skal dele deltagerne inn i to lag, slik at kampen kan foregå lenge. Siden det er totalt 2n påmeldte deltagere, så vil hvert lag bestå av n deltagere. Tauet har n plasser på venstre side og n plasser på høyre side. Tautrekkingeliten i Byteland er veldig kresne: hver person har nøyaktig en plass på den venstre siden av tauet og en plass på høyre siden av tauet som han eller hun liker å bruke. Du vet også styrken til hver deltager. Organisatøren har spurt deg følgende: Gitt et heltall k, er det mulig å lage to lag, slik at hvert lag har n deltagere, hver deltager bruker en plass han eller hun liker (selvsagt kan ingen av deltagerne dele en plass), og summen av styrkene til de to laggene avviker ikke med mer enn k fra hverandre? Input Den første linjen med input innholder et positivt heltall n, antall plasser på hver side av tauet, og et heltall k 20n, den største tillatte forskjellen på lagenes styrker. For enkelhetens skyld nummerer vi deltagerne fra 1 til 2n. Hver av de påfølgende 2n linjene beskriver en deltager: disse linjene har tre positive heltall l i, r i og s i (1 l i, r i n, 1 s i 20), som forteller at deltager i har styrke s i og ønsker å bruke enten plass l i på venstre side av tauet eller plass r i på høyre side av tauet. Output På den første og eneste linjen av outputen skal programmet ditt skrive enten eller NO, avhengig om det er mulig å lage to lag som tilfredstiller kravene satt over. Eksempler 4 1 1 1 1 2 1 2 2 2 8 1 2 2 3 3 5 3 3 2 4 4 1 4 4 2 v. 3 Tug of War 1/2

2 5 1 1 1 1 2 4 2 2 1 2 1 4 NO Forklaring av eksemplene: I det første eksemplet kan vi putte deltagerene 1, 3, 6 og 7 på venstre side (som resulterer i et lag med styrke 1 + 8 + 2 + 1 = 12) og deltagerne 2, 4, 5 og 8 på høyre side (som resulterer i et lag med styke 2 + 2 + 5 + 2 = 11). Forskjellen på styrken mellom lagene er 1. I det andre eksemplet må begge spillerene med styrke 4 være på det samme laget, og den minste forskjellen på styrken mellom de to lagene blir 6. Grading Subtask Begrensninger Poeng 1 n 10 18 2 n 2000 30 3 n 30 000, s i = 1 23 4 n 30 000 29 v. 3 Tug of War 2/2