Pixelproblem | 프로그래밍의 벗 PivotOJ
PivotOJ

Pixelproblem

시간 제한: 7000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2014 — onlinekvalBOJ 26910
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

Simon tycker att det är trevligt med bilder. Han samlar på alla sorters bilder: vackra algoritmiskt genererade bilder, norrländska landskap och skärmdumpar av diverse obskyra matematiska bevis, för att nämna några. Dessa är långt ifrån alla kategorier av bilder som Simon har i sin samling.

Nu har det dock strulat till sig ordentligt. Simons hårddisk har gått sönder. Som tur var så lyckades han rädda några av bilderna, men bara färgdatan. Han har med andra ord inte en aning om vilka dimensioner bilderna hade. Och inte nog med det - det verkar dessutom som att Simon kanske inte har lyckats återställa alla pixlar i bilderna. Det enda Simon är säker på är att minst en pixel på sista raden i varje bild är kvar, och alla pixlar på sista raden som är kvar är sammanhängande. Den sista raden kan alltså ha blivit avklippt vid någon position.

[이미지 1]

Figure 1: Miniatyr-exempel på hur en bild kan se ut efter Simons hårddisk-krasch. Indata för denna bild skulle bestå av 10 pixlar i listan (två har gått förlorade), och de vita pixlarna skulle komma först, sedan de grå, osv. Genom att titta på bildens pixlar kan man konstatera att ursprungsbredden antagligen var 3 pixlar.

Nu behöver Simon experthjälp för att ta reda på bildernas dimensioner utifrån färgdatan och informationen ovan. I sin desperation går Simon in på den välkända Internet-sökmotorn Lolgee och söker på "algoritmproffs". Första träffen är förstås Programmeringsolympiaden. Det är din uppgift att hjälpa Simon så gott du kan.

입력

Varje testfall innehåller precis en bild.

Första raden innehåller ett heltal NN (100N250000100 \leq N \leq 250\,000), antalet pixlar vars färgvärden Simon lyckats återställa. Du vet alltså att bilden innehöll minst NN pixlar (och kanske exakt NN pixlar), men du vet inte hur många pixlar som har försvunnit på sista raden i bilden. Du vet också att ursprungsbredden för bilden var minst 2020 pixlar, och likaså den ursprungliga höjden.

Därefter följer en rad med 3N3N heltal, en lista med RGB-värden för varje pixel. Pixlarna ges i den ordning som de lagras i Simons dator, dvs i row-major order (se figure 1). Värdena för varje pixel ges i ordningen röd, grön, blå. Varje värde är ett heltal mellan 00 och 255255.

Du kan läsa mer om RGB-färgmodellen på Wikipedia: http://en.wikipedia.org/wiki/RGB_color_model

출력

Skriv ut ett enda heltal: bildens ursprungliga bredd.

힌트

Det finns ett antal exempel-bilder, med tillhörande indata och utdata som du kan ladda ner som en zip-fil på examples.zip.

"sample0x.in" innehåller bildens färgdata, som beskriven ovan (med sista raden avklippt). "sample0x.ans" innehåller svaret, dvs bildens ursprungliga bredd. "sample0x.png/jpg" är den ursprungliga bilden, i PNG- eller JPEG-format.

코드를 제출하려면 로그인하세요.