APIO2016 7thMay2016 RepublicofKorea gap Language:id_ID Celah Terdapat buahbilanganbulatnon-negatif yangmemenuhipertidaksamaan .Jeehakinginmenemukannilaitertinggiyangmungkindari yangmananilai berkisardari hingga .Bilangan-bilanganpadamasukantidak akandiberikanlangsungkeprogramJeehak,melainkandapatdiperolehdaripemanggilansuatufungsi khusus.LihatbagianImplementasidalambahasapemrogramanpilihanAndauntukketeranganlebih lanjut. Soal BantulahJeehakuntukmengimplementasikansebuahfungsiyangmengembalikannilaitertinggiyang mungkindari yangmananilai berkisardari hingga . ImplementasidalamCdanC++ AndadimintauntukmengimplementasikansebuahfungsifindGap(T,N)yangmenerima parameter-parameterberikutdanmengembalikansebuahbilanganbulatdengantipedatalonglong: T—nomorsubsoal(1atau2) N—banyaknyabilanganbulatyangdiberikan FungsifindGapAndadapatmemanggilfungsiMinMax(s,t,&mn,&mx) dimanaduaparameter pertamasdantmerupakanvariabeldengantipedatalonglongsertaduaparameterterakhir&mn dan&mxmerupakanpointeruntukvariabeldengantipedatalonglong,dengankatalain,mndanmx merupakanvariabeldengantipedatalonglong.KetikafungsiMinMax(s,t,&mn,&mx) dikembalikan,variabelmnakanberisinilai terkecilyanglebihbesaratausamadengannilaisdan variabelmxakanberisinilai terbesaryanglebihkecilatausamadengannilait.Padakasustidak adasatupunbilangan-bilanganpadamasukanyangberadadiantarasdant(inklusif),makakedua variabelmndanmxakanberisinilai-1.NilaistidakbolehlebihbesardarinilaitketikaMinMax dipanggil.Jikakondisiinitidakdipenuhi,programakandihentikandengansebuahnon-zeroexitcode. ImplementasidalamPascal AndadimintauntukmengimplementasikansebuahfungsifindGap(T,N)yangmenerima parameter-parameterberikutdanmengembalikansebuahbilanganbulatdengantipedataInt64: T—nomorsubsoal(1atau2)(dengantipedataInteger) N—banyaknyabilanganbulatyangdiberikan(dengantipedataLongInt) FungsifindGapAndadapatmemanggilfungsiMinMax(s,t,mn,mx) dimanaduaparameter pertamasdantmerupakanvariabeldengantipedataInt64sertaduaparameterterakhirmndanmx merupakanparameteracuan(byreference)darivariabeldengantipedataInt64,dengankatalain, mndanmxmerupakanvariabeldengantipedataInt64.KetikafungsiMinMax(s,t,mn,mx) selesai,variabelmnakanberisinilai terkecilyanglebihbesaratausamadengannilaisdanvariabel 1/3 mxakanberisinilai terbesaryanglebihkecilatausamadengannilait.Padakasustidakadasatu punbilangan-bilanganpadamasukanyangberadadiantarasdant(inklusif),makakeduavariabelmn danmxakanberisinilai-1.NilaistidakbolehlebihbesardarinilaitketikaMinMaxdipanggil.Jika kondisiinitidakdipenuhi,programakandihentikan. Implementasiuntuksemua Selaindarisyarat-syaratstandar(batasanwaktudanmemori,tidakruntimeerror,dll),programyang Andakumpulkanjugaharusmemenuhisyarat-syarattambahanberikutuntukdapatmenyelesaikan sebuahkasusuji: fungsifindGapAndaharusmengembalikanjawabanyangbenar, nilai yangberhubungandenganpemanggilanfungsiMinMaxtidakbolehmelebihibatasan yangditentukan(lihatbagianPenilaian). ContohuntukCdanC++ Tinjaukasusdimananilai serta ,dan . Jawabanuntukkasustersebut,yakni ,dapatdihitungdandikembalikanolehfungsifindGapjika pemanggilanfungsiMinMaxberikutdilakukan: MinMax(1,2,&mn,&mx) dipanggilsehinggamndanmxkeduanyaberisinilai . MinMax(3,7,&mn,&mx) dipanggilsehinggamnberisinilai danmxberisinilai . MinMax(8,9,&mn,&mx) dipanggilsehinggamndanmxkeduanyaberisinilai . ContohuntukPascal Tinjaukasusdimananilai serta ,dan . Jawabanuntukkasustersebut,yakni ,dapatdihitungdandikembalikanolehfungsifindGapjika pemanggilanfungsiMinMaxberikutdilakukan: MinMax(1,2,mn,mx) dipanggilsehinggamndanmxkeduanyaberisinilai . MinMax(3,7,mn,mx) dipanggilsehinggamnberisinilai danmxberisinilai . MinMax(8,9,mn,mx) dipanggilsehinggamndanmxkeduanyaberisinilai . Penilaian Untuksemuasubsoal,berlaku . Subsoal1(30poin):SetiappemanggilanfungsiMinMaxakanmenambahkannilai kedalam Andaakanmenerimanilaipenuhuntuksubsoaliniapabila untuksemuakasusuji. . Subsoal2(70poin):Dimisalkan adalahbanyaknyabilangan-bilanganpadamasukanyanglebih besaratausamadengansdanlebihkecilatausamadengantpadasebuahpemanggilanfungsi MinMax.SetiappemanggilanfungsiMinMaxakanmenambahkannilai kedalam .Nilaiakhir akandihitungdenganaturanberikut:NilaiakhiruntuksubsoalinimerupakannilaiminimumyangAnda perolehdiantarasemuakasusujiyangdiberikan.Untuksebuahkasusuji,nilaiyangdiperolehadalah70 2/3 apabila dannilaiyangdiperolehadalah ,jikatidak. Percobaan Samplegraderyangdapatdiunduhdarisistempenilaianakanmembacadatadaristandarmasukan. Barispertamadarimasukanberisiduabuahbilanganbulat,nomorsubsoal ,dan .Barisberikutnya berisi buahbilanganbulatyangterurutmenaik.Samplegraderakanmenuliskestandarkeluaran sebuahnilaiyangdikembalikanolehfungsifindGapdibarispertamadannilaidari sesuaidengan subsoaldimanakasusujitersebutberada. Masukanberikutmendeskripsikancontohdiatas: 24 2368 3/3