Coding Contest - August 13, 2011

From syn2cat - HackerSpace.lu
(Difference between revisions)
Jump to: navigation, search
m (bash: output)
Line 93: Line 93:
 
</source><source lang="awk">
 
</source><source lang="awk">
 
NR>1{s=i=0;for(;i<NF;)s+=$++i;print s/i<30?"FAILED":"PASSED"}
 
NR>1{s=i=0;for(;i<NF;)s+=$++i;print s/i<30?"FAILED":"PASSED"}
 +
</source>
 +
 +
==== python ====
 +
<source lang="python">
 +
# CodingContest - Help Mister Foo
 +
# No focus on getting a short code
 +
 +
rfile = open("marks.txt")
 +
wfile = open("results.txt",'w')
 +
 +
students, tests = rfile.readline().split(" ")
 +
 +
for students in rfile:
 +
  values = students.rstrip("\n").split(" ")
 +
  if (sum(int(x) for x in values)) / float(tests) < 30:
 +
    wfile.write("Failed!\n")
 +
  else:
 +
    wfile.write("Passed!\n")
 +
 +
rfile.close()
 +
wfile.close()
 
</source>
 
</source>

Revision as of 20:38, 13 August 2011

Note: this article is about a passed event.
Add your Event
Event.png
Coding Contest - August 13, 2011
Demonstrate your coding skills
Weareinnovative.png
Type of Event: Event
From: 2011/08/13 03:00:00 PM
Till: 2011/08/13 06:00:00 PM
Recurring: no
Organizer: syn2cat
Cost: 0 EUR0 $
0 £
0 CHF
Mandatory registration:


Attendees: Kwisatz, prometheus, SteveClement, Gunstick, Azunix
Log-in to RSVP
Contact Person(s): Destructive (mail)
Keywords:
Location
Where: Hackerspace, Strassen (11, rue du Cimetière, L-8018 Strassen, Luxembourg)
Map:
Loading map...
Tools
QrCode: QR-e8b183c5e5d2f76abb8515c0e4239e2a.png
Add to your calendar: Download … further results
Alternate picture: None
Announce globally: no
In this contest you have to solve problems of algorithmic nature with different degrees of difficulty. You can use the programming language you like.

"File:" cannot be used as a page name in this wiki.



The goal of this contest is not to find the best coder, but to enjoy coding together and to motivate others to start coding. If you can write a "hello world" program in any language, you are welcome. There will be certainly someone to help you to solve the tasks.

We will use the following example problem to make us familiar with the contest system.


Contents

Problem

Mr. Foo has to determine if his students have passed the year. As he has many students which have written many tests, he can't use his calculator, because it would take him too long. He knows that you are a skilled hacker, so he has asked you to make a program to automate his task.

He has S students. Each student has written N tests. The test scores ranges from 0 to 60 (both inclusive). A student has passed his year if he has an average score of more or equal to 30. The average is not rounded.


Input

You are given an input file. The first line consists of 2 integers: the number of students S (1 <= S <= 1000) and the number of tests N (1 <= N <= 1000). S lines follow, which consists of N integers, representing the scores of a student.


Output

You have to create an output file which contains one line per student. Each containing 'PASSED' if he has passed his year, otherwise 'FAILED'.


Input example

4 2
29 30
30 30
50 60
0 58

Output example

FAILED
PASSED
PASSED
FAILED

Solutions

bash

kwisatz@arbre:~/coding/bash% bash sba.sh i
FAILED
PASSED
PASSED
FAILED
kwisatz@arbre:~/coding/bash% wc -c sba.sh
128 sba.sh
kwisatz@arbre:~/coding/bash% cat sba.sh
tail -n+2 $1|while read i;do k=0;s=0;for j in $i;do((++k));((s=s+j));done;[[ $s -ge $((30*k)) ]]&&echo PASSED||echo FAILED;done

php

jedi@test:~/work/coding$ php foo.php
FAILED
PASSED
PASSED
FAILED
jedi@test:~/work/coding$ wc -c foo.php
116 foo.php
jedi@test:~/work/coding$ cat foo.php
<?$h=file('i',2);$i=1;while($h[$i]) echo(((array_sum($a=explode(' ',$h[$i++]))/count($a))>=30)?PASSED:FAILED)."\n";

awk

syn2cat@manion:~$ awk -f 1.awk test.txt 
FAILED
PASSED
PASSED
FAILED
syn2cat@manion:~$ wc -c 1.awk 
61 1.awk
syn2cat@manion:~$ cat 1.awk
NR>1{s=i=0;for(;i<NF;)s+=$++i;print s/i<30?"FAILED":"PASSED"}

python

# CodingContest - Help Mister Foo
# No focus on getting a short code
 
rfile = open("marks.txt")
wfile = open("results.txt",'w')
 
students, tests = rfile.readline().split(" ")
 
for students in rfile:
  values = students.rstrip("\n").split(" ")
  if (sum(int(x) for x in values)) / float(tests) < 30:
    wfile.write("Failed!\n")
  else:
    wfile.write("Passed!\n")
 
rfile.close()
wfile.close()
Personal tools
Namespaces

Variants
Actions
Navigation
syn2cat
Hackerspace
Activities
Initiatives
Community
Tools
Tools