Submit | All submissions | Best solutions | Back to list |
PROG0103 - Document properties |
Most word processors show some properties of the text in a document, such as the number of words or the number of letters in that document. Write a program that can determine some of these document properties.
Input
The first line of the input contains an integer $t \in \mathbb{N}$. This is followed by $t$ lines of text. This text consists of:
- lowercase letters (a-z) en uppercase letters (A-Z)
- dash (-): though it may be between two spaces, it is not counted as a word
- apostrophe ('): in the (English) text only used to indicate the contraction of two words; the fragment "It's" contains two words
- other characters: punctuation marks such as (,),!? still cling to a word
- white space (spaces and tabs): with the exception of the rules on the dash and the apostrophe, so you can always assume that there is at least one character white space between two words
Output
Write the following information on separate lines to the output:
- sections: p, where $p$ represents the number of sections in the text; between two sections there is exact one blank line
- lines: r, where $r$ is the number of lines in the text
- words: w, where $w$ is the number of words in the text
- characters: k, where $k$ is the number of characters in the text (exclusive of the characters used at the end of the line)
- letters: l, where $l$ is the number of characters from the alphabet; do not distinguish between uppercase and lowercase letters
- white space: i, where $i$ is the number of spaces and tabs
- other: o, where $o$ is the number of characters which not a letter, space or tab; in other words: $k = l + i + o$
Example
Input:
3 A - simple? - test To show it's (more or less) working.
Output:
sections: 2 lines: 3 words: 11 characters: 54 letters: 37 white space: 10 other: 7
Example
Input:
2 This sentence has two spaces between some words and contains "quotations"
Output:
sections: 1 lines: 2 words: 13 characters: 87 letters: 69 white space: 14 other: 4
Example
Input:
49 Some things in life are bad They can really make you mad Other things just make you swear and curse. When you're chewing on life's gristle Don't grumble, give a whistle And this'll help things turn out for the best... And... Always look on the bright side of life... Always look on the light side of life... If life seems jolly rotten There's something you've forgotten And that's to laugh and smile and dance and sing. When you're feeling in the dumps Don't be silly chumps Just purse your lips and whistle - that's the thing. And... Always look on the bright side of life... Always look on the light side of life... For life is quite absurd And death's the final word You must always face the curtain with a bow. Forget about your sin - give the audience a grin Enjoy it - it's your last chance anyhow. So always look on the bright side of death Just before you draw your terminal breath Life's a piece of shit When you look at it Life's a laugh and death's a joke, it's true. You'll see it's all a show Keep 'em laughing as you go Just remember that the last laugh is on you. And always look on the bright side of life... Always look on the right side of life... (Come on guys, cheer up!) Always look on the bright side of life... Always look on the bright side of life... (Worse things happen at sea, you know.) Always look on the bright side of life... (I mean - what have you got to lose?) (You know, you come from nothing - you're going back to nothing. What have you lost? Nothing!) Always look on the right side of life...
Output:
paragraphs: 8 lines: 49 words: 307 characters: 1571 letters: 1149 white space: 332 other: 90
De meeste tekstverwerkers geven een aantal eigenschappen van de tekst uit een document weer, zoals het aantal woorden of het aantal letters in dat document. Schrijf een programma dat zelf een aantal van deze documenteigenschappen kan bepalen.
Invoer
De eerste regel van de invoer bevat een getal $t \in \mathbb{N}$. Daarna volgen $t$ regels tekst. Deze tekst bestaat uit:
- kleine letters (a-z) en hoofdletters (A-Z)
- gedachtestreepje (-): hoewel het tussen twee spaties kan staan, wordt het niet als woord geteld
- apostrofe ('): wordt in de (engelstalige) tekst uitsluitend gebruikt om de samentrekking van twee woorden aan te geven; het fragment "It's" bevat dus twee woorden
- overige karakters: leestekens zoals (, ), !, ? kleven steeds aan een woord
- witruimte (spaties en tabs): met uitzondering van de regels voor het gedachtestreepje en de apostrofe, mag je dus steeds veronderstellen dat tussen twee woorden minstens één karakter witruimte staat
Uitvoer
Schrijf de volgende informatie op afzonderlijke regels naar de uitvoer:
- paragrafen: p, waarbij $p$ het aantal paragrafen in de tekst voorstelt; tussen twee paragrafen staat juist één lege regel
- regels: r, waarbij $r$ het aantal regels in de tekst voorstelt
- woorden: w, waarbij $w$ het aantal woorden in de tekst voorstelt
- karakters: k, waarbij $k$ het aantal karakters in de tekst voorstelt (exclusief de karakters die gebruikt worden om het einde van een regel voor te stellen)
- letters: l, waarbij $l$ het aantal karakters voorstelt die letters uit het alfabet zijn; maak hierbij geen onderscheid tussen hoofdletters en kleine letters
- witruimte: i, waarbij $i$ het aantal spaties en tabs voorstelt
- overige: o, waarbij $o$ het aantal karakters voorstelt dat geen letter, spatie of tab is; met andere woorden: $k = l + i + o$
Voorbeeld
Invoer:
3 A - simple? - test To show it's (more or less) working.
Uitvoer:
paragrafen: 2 regels: 3 woorden: 11 karakters: 54 letters: 37 witruimte: 10 overige: 7
Voorbeeld
Invoer:
2 Deze zin heeft tussen enkele woorden 2 spaties staan en bevat ook "aanhalingstekens".
Uitvoer:
paragrafen: 1 regels: 2 woorden: 13 karakters: 87 letters: 69 witruimte: 14 overige: 4
Voorbeeld
Invoer:
49 Some things in life are bad They can really make you mad Other things just make you swear and curse. When you're chewing on life's gristle Don't grumble, give a whistle And this'll help things turn out for the best... And... Always look on the bright side of life... Always look on the light side of life... If life seems jolly rotten There's something you've forgotten And that's to laugh and smile and dance and sing. When you're feeling in the dumps Don't be silly chumps Just purse your lips and whistle - that's the thing. And... Always look on the bright side of life... Always look on the light side of life... For life is quite absurd And death's the final word You must always face the curtain with a bow. Forget about your sin - give the audience a grin Enjoy it - it's your last chance anyhow. So always look on the bright side of death Just before you draw your terminal breath Life's a piece of shit When you look at it Life's a laugh and death's a joke, it's true. You'll see it's all a show Keep 'em laughing as you go Just remember that the last laugh is on you. And always look on the bright side of life... Always look on the right side of life... (Come on guys, cheer up!) Always look on the bright side of life... Always look on the bright side of life... (Worse things happen at sea, you know.) Always look on the bright side of life... (I mean - what have you got to lose?) (You know, you come from nothing - you're going back to nothing. What have you lost? Nothing!) Always look on the right side of life...
Uitvoer:
paragrafen: 8 regels: 49 woorden: 307 karakters: 1571 letters: 1149 witruimte: 332 overige: 90
Added by: | Peter Dawyndt |
Date: | 2011-08-04 |
Time limit: | 10s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | |
Resource: | None |
hide comments
2011-11-02 12:58:45 Gerben Van Ranst
Runtime error is opgelost. Bij voorbeeld 3 ook een probleem met het aantal spaties. Alvorens iets aan de invoer te veranderen, tel ik i met .count. Het resultaat is 327 (!= 332). Waar komen die 5 witruimten vandaan? |
|
2011-11-02 11:51:11 Elke De Vlaminck
Het aantal karakters en aantal witruimtes zijn onjuist bij voorbeeld 3. |
|
2011-11-01 14:55:56 Gerben Van Ranst
Zelfde probleem als bij EG-nummers. In Eric werkt het programma, maar pythia geeft weer een runtime error. |