From: Marius Gavrilescu Date: Sun, 19 Apr 2015 19:37:58 +0000 (+0300) Subject: Merge branch 'master' into newmc X-Git-Url: http://git.ieval.ro/?a=commitdiff_plain;h=35fc050c68c786aea19320eafc99e923c523a8f3;hp=c910d2bacb62948dde7d1a5526f56228fb156b0a;p=gruntmaster-page.git Merge branch 'master' into newmc --- diff --git a/Makefile.PL b/Makefile.PL index 2bf04ac..8404b77 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -10,10 +10,11 @@ WriteMakefile( LICENSE => 'AGPL_3', SIGN => 1, clean => { - FILES => 'static/css/ static/js/' + FILES => 'static/css/ static/js/ css/logos.css static/logos.png' }, BUILD_REQUIRES => { qw/CSS::Minifier::XS 0 + CSS::SpriteMaker 0 File::Slurp 0 Test::MockTime 0 Test::More 0 diff --git a/a/about.en b/a/about.en new file mode 100644 index 0000000..ec02bf0 --- /dev/null +++ b/a/about.en @@ -0,0 +1,15 @@ +We are a group of coders of all ages, passionate about problem solving and algorithms. Together, we created MindCoding, an online platform where anyone can learn algorithms and test their skills. Join us, teach yourself new things and have fun! +

+Our website provides a problem list with an online evaluation system, which means you'll find out on the spot if your solution is correct. We support a wide rande of programming languages, allowing all programers to participate, regardless of their technical background. Read from stdin and print to stdout. +

+If you take part in our coding competition (which we strongly recommend!) don't forget to check out our standings and see how well you did compared to your friends. +

+Put your mind to work and code! + +

How to use the website

+First you need to create an account. For this click the Account button in the navbar.
+When you want to do an action that needs an account you will be required to log in.
+To submit a problem you can either paste your code into the text area for the corresponding problem or browse for the source.
+To take part in a contest, you don't need to register to a particular one, you just need to access its page after the contest starts. +

+Here are example solutions for the A+B problem in all languages. diff --git a/a/about.en.title b/a/about.en.title new file mode 100644 index 0000000..f461446 --- /dev/null +++ b/a/about.en.title @@ -0,0 +1 @@ +About / Help diff --git a/a/fin.en b/a/fin.en new file mode 100644 index 0000000..b350526 --- /dev/null +++ b/a/fin.en @@ -0,0 +1,82 @@ +

Standings

+ +
RankNameFinal 1Final 2Total +
1Alex Velea 4516831134 +
2Rares Buhai 502431933 +
3Patcas Csaba 175287462 +
4Mircea Popoveniuc 0361361 +
5Mărcuș Romulus George 2540254 +
6Onesim Robert Ioan 48147195 +
7Vlad Duta 9270162 +
8Alghisi Alessandro 1500150 +
9Adrian Craciun 90090 +
10Dan Alexandru 89089 +
11Stefan Negrus 88088 +
12Alex Cociorva 83083 +
13Nechita Sebastian 74074 +
14Plop Teodor 62062 +
15Bucevschi Alexandru 54054 +
16Costin Bianca 000 +
17Dit Dragos-Daniel 000 +
18Emanuel Truta 000 +
19Kis Levente Lorand 000 +
20Paffy Sandor000 +
+ +
+
+

Qualified

+
    +
  1. Rares Buhai +
  2. Mihai Popa +
  3. Mugurel Ionut Andreica +
  4. Vlad Duta +
  5. Romulus George Marcus +
  6. Mihai Nitu +
  7. Catalin Stefan Tiseanu +
  8. Adrian Craciun +
  9. Mihai Gheorghe +
  10. Alex Cociorva +
  11. Mircea Popoveniuc +
  12. Stefan Negrus +
  13. Teodor Ionescu +
  14. Alexandru Dan +
  15. Teodor Plop +
+
+ +
+

Waiting list

+
    +
  1. Onesim Robert Ioan +
  2. Buleandra Cristian +
  3. Ioan Vlad Petcu +
  4. Andrei Stanciu +
  5. Nathan Wildenberg +
  6. Alexandru Bucevschi +
  7. Andrei Gogonea +
  8. Felix Puscasu +
  9. Matei Paun +
  10. Gedit Ciorabai +
+
+ +
+

Qualified (Cluj)

+
    +
  1. Alex Velea +
  2. Csaba Patcas +
  3. Vasile Lup +
  4. Emanuel Truta +
  5. Sergiu Cosmin Nistor +
  6. Dragos Crisan +
  7. Bianca Costin +
  8. Tudor Octavian Pocola +
  9. Dragos-Daniel Dit +
  10. Sandor Pallfy +
  11. Alessandro Alghisi +
  12. Levente Lorand Kis +
  13. Sebastian Nechita +
+
+
diff --git a/a/fin.en.title b/a/fin.en.title new file mode 100644 index 0000000..4d60e6b --- /dev/null +++ b/a/fin.en.title @@ -0,0 +1 @@ +Final Round Participants diff --git a/a/fin2015.en b/a/fin2015.en new file mode 100644 index 0000000..646de69 --- /dev/null +++ b/a/fin2015.en @@ -0,0 +1,40 @@ + + + +
No.UserRound 1Round 2Total +
1Vlad Alexandru Gavrila11975611758 +
2Alex Velea13522711623 +
3Denis Mita9675281495 +
4Ionescu Teodor1156921248 +
5Posdarascu Eugenie Daniel9991401139 +
6Ciprian Olariu6864231109 +
7Mihai Nitu70884792 +
8Nechita Sebastian495285780 +
9Adrian Budau331416747 +
10Alex Cociorva444241685 +
11Andrei Comăneci506169675 +
12Berbecariu Flaviu245407652 +
13Mihai Enache50793600 +
14Mărcuș Romulus George294238532 +
15Stefan Negrus44187528 +
16Radu Rusu41892510 +
17Nitu Doru Constantin26881349 +
18Lucian Musca29343336 +
19Bacotiu Gabi2380238 +
20Kis Levente Lorand9686182 +
21Stanislav Ivanov8384167 +
22Nicu Bodea8086166 +
23Alex Palcuie8680166 +
24Bogdan Boțocan8570155 +
25Valeri Tsolov9063153 +
26Costin Bianca7173144 +
27Lazar Laurentiu9434128 +
28sorin olimpicu9230122 +
29Buzu Tudor3083113 +
30Monica Muranyi653297 +
31Vasilut Lucian663096 +
32Hasmasan Dragos83083 +
33Dragos Varvara81081 +
34Sbera Catalin62062 +
35Dit Dragos-Daniel000 +
diff --git a/a/fin2015.en.title b/a/fin2015.en.title new file mode 100644 index 0000000..2c9fd00 --- /dev/null +++ b/a/fin2015.en.title @@ -0,0 +1 @@ +MindCoding 2015 Final Standings diff --git a/a/guide.en b/a/guide.en new file mode 100644 index 0000000..76a4380 --- /dev/null +++ b/a/guide.en @@ -0,0 +1,72 @@ +
+

Quick Start Guide:

+ + +
+

STEP 1: Choosing a problem from the list

+ +

In order to choose a problem click the Problems button from the + navbar.

+

Then click on the problem you want to solve. +
For example let's choose A+B problem.

+
+ +
+

STEP 2: Starting to fill the form

+ +
+

From now on we focus on Submit solution area.

+

Here we can find the form to be filled in order to upload a solution to any given problem.

+
+ +
+

STEP 3: Solution source code

+ + + + + + +
1st Option - Upload the source file
+
+ Go to Choose file button from File area and then choose the source file. +
or 2nd Option - Paste the code
+ +
+ Here are some examples for how to submit: + +
+ + +
+

STEP 4: Selecting the file format

+ +

After uploading the source code we have to choose the format + corresponding to the code we provided as solution.

+
+ +
+

...and SUBMIT

+ +

Click the Submit job button and wait for the results.

You will be redirected + to Job log page where you can see the results.

+ +
+
+ +

Good luck!

+ + +
diff --git a/a/guide.en.title b/a/guide.en.title new file mode 100644 index 0000000..1fb0ba9 --- /dev/null +++ b/a/guide.en.title @@ -0,0 +1 @@ +Quick start guide \ No newline at end of file diff --git a/a/index.en b/a/index.en index e69de29..5506926 100644 --- a/a/index.en +++ b/a/index.en @@ -0,0 +1,64 @@ +
+

MindCoding 2015 Final Round

+View the standings, +
+ +
+

Online qualification round schedule for 2015

+ + +

Each round will begin at 19:00 EET and will last one hour and a +half (90 minutes)
For any questions contact us on +#mindcoding +(irc.oftc.net)
+Read our quick-start guide
+View the combined standings +

+ +
+

MindCoding Competition — The Second Edition

+

We are excited to announce the return of MindCoding, the fun but +still challenging programming competition! It doesn't matter if you +have a job, you're in college or still in school, what really matters +is that you're passionate about problem solving. + +

Join our community and have the opportunity to learn new things and +make a name for yourself! Are you passionate about a certain +technology? Do you need a team in order to work on a project? +MindCoding will help you make new friends who share your interests. + +

The first online round is Thursday, the 12th of February. We hope +you'll join us! + +

You will have to solve 4 algorithmic problems of varying difficulty +levels, and they will be scored based on their level and your problem +solving speed. In order for a solution to be considered correct, it +must pass all of our tests. We strongly recommend getting used to our +platform by solving a few warm-up challenges. + +

Good luck and have fun! +

+ +
+

MindCoding Final Round

+Read the standings, the list of participants and the rules (Part 1 and Part 2). + +
+ +
+

MindCoding National Competition - First Edition

+

We are happy to announce the launch of MindCoding, our fun and challenging national programming competition! It doesn't matter if you have a job, you're a student or you're still in school, what really matters is your passion for problem solving. +

+Join our community and have the opportunity to learn new things and make a name of yourself! Are you passionate about a certain technology? Do you need a team for working on a project? MindCoding will help you make new friends who share your interests. +

+The first online round is this Thursday, on the 30th of January. We hope you'll join us! +

+You will have to solve 4 algorithmic problems of various difficulty levels, and they will be scored based on their level and your problem solving speed. In order for a solution to be considered correct, it must pass all of our tests. We strongly recommend getting used to our platform by solving a few warm-up challenges. +

+Good luck and have fun! +

diff --git a/a/index.en.title b/a/index.en.title index e7e81c9..270e381 100644 --- a/a/index.en.title +++ b/a/index.en.title @@ -1 +1 @@ -Gruntmaster 6000 \ No newline at end of file +MindCoding Online Judge diff --git a/a/mc2015st.en b/a/mc2015st.en new file mode 100644 index 0000000..3b834b2 --- /dev/null +++ b/a/mc2015st.en @@ -0,0 +1,416 @@ + + + +
No.UserRound 1Round 2Round 3Round 4Total +
1Vlad Alexandru Gavrila132213963026793699 +
2Mărcuș Romulus George85714792946713301 +
3Rares Buhai4417057078122665 +
4Oncescu Costin Andrei4957176116842507 +
5Denis Mita6675243156722178 +
6Ciprian Olariu2896195706632141 +
7Alex Cociorva3106064826842082 +
8Alex Velea3103385568052009 +
9Mihai Enache4924445433301809 +
10Constantinescu Andrei Costin594321796111605 +
11Stefan Negrus3126052333251475 +
12Andrei Comăneci394306756891464 +
13Nechita Sebastian499584-3201403 +
14Berbecariu Flaviu4523732732981396 +
15Andrei896162922931290 +
16Ionescu Teodor69044689-1225 +
17Banu Cristian59029203341216 +
18Cozma Tudor Andrei2482802143981140 +
19Adrian Budau1126---1126 +
20Mikhail Mayorov---11171117 +
21Posdarascu Eugenie Daniel857255--1112 +
22Alex Ionita487258632991107 +
23Robert Rada2732632673031106 +
24Nicu Bodea478292722611103 +
25Nathan Wildenberg2652452902741074 +
26Radu Rusu1622802743251041 +
27Costin Bianca229320183254986 +
28Diana-Elena Ghinea83298247330958 +
29Mihai Nitu286--660946 +
30Tudor Costin Razvan285176170312943 +
31Lucian Bicsi3092980329936 +
32Rusu Daniel90245273315923 +
33Mihai Popa305612--917 +
34Jianu Mihail21726573329884 +
35Binica Nicolae59251254320884 +
36Alex Palcuie209304183170866 +
37Bucevschi Alexandru20128181263826 +
38Stanislav Ivanov24822466288826 +
39Buzu Tudor25426058251823 +
40Mircea Popoveniuc69455297-821 +
41Lucian Musca15631958282815 +
42Lup Vasile555-254-809 +
43Kis Levente Lorand527254--781 +
44Monica Muranyi83302191178754 +
45Jakub Safin-745--745 +
46Taraban Dragos-Petru56162223299740 +
47Vladimir Milenkovic---728728 +
48Sitaru Bogdan9127786264718 +
49George Chichirim---714714 +
50Alexey Zayakin---706706 +
513027375320698 +
52Radu Visan697---697 +
53Ion Ureche394269--663 +
54Popescu George Aurelian1422090273624 +
55Banu Denis942982290621 +
56johnsmith-75247297619 +
57Alexandru Cosmin Mihai15824218133614 +
58VlasCatalin2883140-602 +
59Babuta Rares Mihai462690284599 +
60Bohdan Pryshchenko-591--591 +
61Valeri Tsolov-24156291588 +
62Maria Pandele---570570 +
63Nitu Doru Constantin22226775-564 +
64Mag István3022830272560 +
65Sonia Mileva-28647217550 +
66Marilena Bescuca30298213-541 +
67Hasmasan Dragos64187148141540 +
68Cheseli Rares183260095538 +
69Gabor Alexandru1509020093533 +
70Alexa Tudose 163274770514 +
71Radu Muntean-412102-514 +
72Encho Mishinev-513--513 +
73Badea Adrian Catalin22222862-512 +
74Margeloiu Andrei162--341503 +
75Bacotiu Gabi54255-190499 +
76Ionut Bogdanescu268231--499 +
77Suditu Thomas-Cristian476---476 +
78Popa Andrei Marius77299100-476 +
79Moldovan Andrei-282190-472 +
80George Linut65200-200465 +
81Ivan Marian76257-123456 +
82Andrei Stanciu264-183-447 +
83Crisan Dragos235211--446 +
84Razvan Idomir3320830174445 +
85C210226--436 +
86Nistor Sergiu Cosmin-247188-435 +
87Péter Botond55236136-427 +
88Teodora Serbanescu-21012385418 +
89Niculae Alexandru-Vlad30234153-417 +
90Danut Gabriel Matei215201--416 +
91Alin Corodescu8210530190407 +
92Gabriel Boroghina137-149112398 +
93cristina borza0178219-397 +
94Alghisi Alessandro105--287392 +
95Lucacel Razvan Cristian135249--384 +
96Armand Nicolicioiu830-300383 +
97Tanase Mihai Andrei1602230-383 +
98Andrei Ionut Gavrila3030-321381 +
99Cojocaru Gabriel28593--378 +
100Blaj Andrei1162570-373 +
101Lazar Laurentiu121251--372 +
102Razvan George Ilascu105258--363 +
103Oana Teodorescu30262-64356 +
104Gabriel Badea73282--355 +
105Adina Mateescu 144745877353 +
106Serban Marius-Bogdan5629400350 +
107Bogdan Boboc441526093349 +
108Vlad Badelita85--263348 +
109Totolin Cristian61235-40336 +
110Paun Victor Cristian0272-63335 +
111Morosac M. George Marian702580-328 +
112Szabolcs Orban318---318 +
113Breahnă David03040-304 +
114sorin olimpicu139-7788304 +
115Cornoiu Vlad73230--303 +
116Gergely David0263-30293 +
117Marin Tiberiu293---293 +
118Horia Turcuman-292--292 +
119Charlie Kelly---284284 +
120Codrut-Georgian ARTENE22162--283 +
121Mircea-Constantin Dobreanu---282282 +
122Naiden Liviu Andretti281---281 +
123Gemene Narcis-Gabriel280---280 +
124Streche Robert Catalin51144084279 +
125Filip Popa30245--275 +
126Savulescu Stefan0273--273 +
127Ungurasu Razvan0272--272 +
128Calinescu Dragos-271--271 +
129Stefan-Adrian Popa270---270 +
130Bondariuc Dan Alexandru0266--266 +
131Motroi Valeriu-261--261 +
132Timis Razvan -261--261 +
133Feraru Bogdan-260--260 +
134Horia Bogdan Cretescu254---254 +
135Rogoz Bogdan126128--254 +
136Iordache Ioan-Bogdan250---250 +
137Sergiu Puscas-250--250 +
138vlad turcuman3030189-249 +
139Bunget Alexandru Catalin247---247 +
140Sabau Andrei0244--244 +
141Bogdan Boțocan8766-91244 +
142Dragos Varvara0243-0243 +
143Filimon Marta-Diana243---243 +
144cozma diana-242--242 +
145Cazacu Robert-80-162242 +
146Constantin Popescu-240--240 +
147Stoica Andrei Toma-239--239 +
148Dumitru Robert30209--239 +
149Nasca Sergiu30208--238 +
150Diana Elena Tudoreanu237---237 +
151Bogdan Mucenic-236--236 +
152Cioba--44192236 +
153Gocz Tibor-Marian0229--229 +
154Nazare Emanuel0229--229 +
155Lolus14581--226 +
156Kurkó Mihály-Zsolt223---223 +
157Nichita Diaconu-220--220 +
158ciprian florescu-219--219 +
159Sbera Catalin021600216 +
160Alex Andrei Stanciu-205--205 +
161Darjan Catalin--0203203 +
162Dit Dragos-Daniel189---189 +
163Liana Tucar-188--188 +
164Medan Florin-Andrei-186--186 +
165Vasilut Lucian1120-72184 +
166Miriam Costan1830--183 +
167Patrutoiu Andrei-178--178 +
168Bojan Valentina-Camelia--173-173 +
169Pascu Maria6046-65171 +
170Philip Dumitru301380-168 +
171Zadic Darius Andrei-1660-166 +
172Drumea Vasile75--90165 +
173Sebastian-Alex Oros30--133163 +
174Stefan Sebastian-163--163 +
175Vlad Costin Alexandru162---162 +
176Ciofu Serban -155--155 +
177Timofte Stefan Ciprian152-0-152 +
178Zoltan Răzvan-Daniel60--88148 +
179Razvan Bogdan Andrei Radoi-137--137 +
180Matei Alexandru-136--136 +
181Militaru Cristian-135--135 +
182Eduard Poesina-130--130 +
183Sebe Mircea Octavian1300--130 +
184Béni Gál-130--130 +
185Bonta Vlad Valentin1240--124 +
186Burcea Bogdan Madalin--3288120 +
187Nasca Bogdan-120--120 +
188Casapu Andreas30--89119 +
189Leordean Ada Alexandra01190-119 +
190Andrei Victor Serbanescu-112--112 +
191Muresan Gabriel Alexandru053-56109 +
192Horia Turcuman105---105 +
193Malina Florea105---105 +
194Micu Vlad105---105 +
195Andrei Oltean-97--97 +
196Idk hz---9393 +
197Huhurez Marius---9292 +
198Manghiuc Teodor Florin--09292 +
199Ujjaval---9292 +
200Baltatu Andrei-Mircea910--91 +
201Zloteanu Anastasia91---91 +
202Mario---8888 +
203Mustatea Radu88---88 +
204Vlad Potra87---87 +
205Barbalau Antonio87---87 +
206chiriacandrei2586---86 +
207Patrick Catalin Alexandru SAVA84---84 +
208Munteanu Petru3648--84 +
209Szabó Károly0008383 +
210Adam Marius---8383 +
211Rares Stan-83--83 +
212Antonio Boar82---82 +
213Ardei Claudiu81---81 +
214Cosmin Andrei Carabet81---81 +
215Tudor Ciurca80---80 +
216Mateusz Frankowski---8080 +
217Alexandru Suciu790--79 +
218Florin Chirica76---76 +
219Cartis Andrei-Ionut75---75 +
220Ioana Alexandra Antoche75---75 +
221Ciobotariu Narcis Paul Dumitru-75--75 +
222Stoleru Teodora74---74 +
223Netedu Andrei73---73 +
224Alexandru Ionescu72---72 +
225Laurentiu Avasiloaie4230--72 +
226Coteanu Vlad71---71 +
227Andrei Diaconeasa69---69 +
228Berbecariu Crina---6969 +
229Dragoș Alin Rotaru69---69 +
230Maier Kurpé Erik68---68 +
231Octavian Crintea68---68 +
232Bonte Aurelian Emanuel67---67 +
233Ozturk Arif65---65 +
234Alexandru Dudescu64---64 +
235Radu Aron30-33-63 +
236Mihai Chihai63---63 +
237Alexandra63---63 +
238Rusu Rares61---61 +
239Zamfir Ovidiu3030--60 +
240Voicencu Teodor Octavian54---54 +
241Bogdan Constantin54---54 +
242Mihai Moldovan-53--53 +
243Vancea Cosmin51---51 +
244Olaru Bogdan50---50 +
245Florin Ilie--48-48 +
246Sima Gheorghe Eugen47---47 +
247Paun Matei47---47 +
248Laurentiu Dancu46---46 +
249Tiberiu Iorgulescu45---45 +
250Lucut Radu Ioan-45--45 +
251Țoncu Daniel43---43 +
252Catalin Irimie--43-43 +
253Calin Nicolau-41--41 +
254Șlincu Șerban-Ștefan41---41 +
255Tofan Alexandru Alin40---40 +
256Gasca Giorgiana39---39 +
257Berbecariu Dorin38---38 +
258Teodor Plop35---35 +
259Andrei Tanasescu30---30 +
260Irina B30---30 +
261Manda Iulian30---30 +
262Vlad Negura30---30 +
263Mihai Stan-30--30 +
26430---30 +
265Toader Andrei Sorin030--30 +
266Todoran Madalina-30--30 +
267Tudor Blaga-30--30 +
268Ana Rednic300--30 +
269Alex Tatomir30---30 +
270Dragos Aioanei30---30 +
271Eugen Patru--30-30 +
272Mihnea Alexandru Gafton30---30 +
273CHECICHES Marius-Cristian300--30 +
274Mihai Beșliu30---30 +
275Radu Doros30---30 +
276Remus Golgot30---30 +
277Tudor Bura30---30 +
278Vlad Negru30---30 +
279Zolcsak Zsolt30---30 +
280Darian Craciun0---0 +
281Stroia Aida-Gabriela0---0 +
282Alexandru Dima0---0 +
283Alexandru Andries0---0 +
284Civitu Anca Elena00--0 +
285Chereches Sergiu Alexandru0---0 +
286Dinea Eduard0---0 +
287Antoniu Bumbas-0--0 +
288Vlad Bieltz0---0 +
289Gherghina Bogdan00--0 +
290Zaharia Bogdan Constantin0---0 +
291Bogdan Salau0---0 +
292Libotean Cristina Maria0---0 +
293Deehoro ---00 +
294Dobos Paul---00 +
295Dragulin Silviu0---0 +
296Emil Cenţiu0---0 +
297Stefan Ionescu0---0 +
298Alex Rotileanu0---0 +
299Pop Ioana Andreea-0--0 +
300Iulian Boboc0---0 +
301Serian Iustin--0-0 +
302Kiss-Budai Matyas0---0 +
303Kovács György--0-0 +
304Irimia Iustin0---0 +
305Chiorean Octavian0---0 +
306Miron Danut0---0 +
307Pop Marcus0---0 +
308StephenBerg-0--0 +
309Munteanu Mihail0---0 +
310Molnar Carmen Oana0---0 +
311Vizitiu Monica-Maria0---0 +
312Pirvu Rares0---0 +
313Juravle Oana00--0 +
314Persa Paul0---0 +
315Petre Catalin0---0 +
316Csáki Tamás0---0 +
317Andrei Preotu0---0 +
318Demian Bogdan-0--0 +
319Sorin Mocanu0---0 +
320Stavarache Antonio0---0 +
321Stefan Stefanescu0---0 +
322Teodora Dita0---0 +
323Cristea Theodor Stefan0---0 +
324Usurelu Daniel Constantin-0--0 +
325Vele Radu George0---0 +
326Victor Pescaru0---0 +
327Teodorescu Vlad0---0 +
328Vlad Crismaru0---0 +
329Curiman Andrei0---0 +
330Adriana Moisil--0-0 +
331Alexandru Mocanu0---0 +
332Alexandru Dobre00--0 +
333Alex Toma0---0 +
334alexh-0--0 +
335Rus Alisa0---0 +
336Pintilie Anastasia0---0 +
337Andreea Dutulescu0---0 +
338Andrei Ionescu0---0 +
339Andrei-Florin Dogaru0---0 +
340Andrei Covaciu0---0 +
3410---0 +
342Stefanescu Andru0---0 +
343Andrei Antohie0---0 +
344Beniamin Savu0---0 +
345Bia Beniamin0---0 +
346Adrian Manea-0--0 +
347Zaharachescu Bogdan00--0 +
348Bogdan Ciurezu0---0 +
349Luncasu Bogdan Cristian0---0 +
350Bolos Robert0---0 +
351Geman Dorin Andrei0---0 +
352Câmpean Bogdan Mihai0---0 +
353Cioban Cristian Andrei0---0 +
354Paraschiv A.-0--0 +
355Petrehus A.0---0 +
356Condrea Florin0---0 +
357Petrica Stefan Cosmin0---0 +
358cristina borza0---0 +
359Pupeza Pavel Cristian0---0 +
360Szilagyi Csongor0---0 +
361Custura Natanael0---0 +
362Dana Pasca0---0 +
363Damian Dan-Stefan0---0 +
364Daria Marc0---0 +
365Bugnar Dan0---0 +
366Delia Drg0-0-0 +
367Russu Vlad---00 +
368Homner Dragos-0--0 +
369Dragos-0--0 +
370Radu Seteanu0---0 +
371Toader Alexandru-Romica-0--0 +
372Moise Gabriel0---0 +
373Deac Andrei-0--0 +
374Râpeanu George-Alexandru-0--0 +
375Muntean Horia Ioan0---0 +
376Iliesi Daniel0---0 +
377Mihai Alexandru Ionut-0--0 +
378Iulian Popescu-0--0 +
379Chili Ivona-Alexandra0---0 +
380Iulia Sargu0---0 +
381Laszlo Gabor0---0 +
382Alexandru Lungu--0-0 +
383Costolas Darius Flavius0---0 +
384Cata Mihai0---0 +
385Vasiluță Andrei Ionuț00--0 +
386Ardelean Ovidiu0---0 +
387doyouhaveanycookiez0---0 +
388Radu Iulian--0-0 +
389Raul Muresan0---0 +
390Albu Cristian0---0 +
391Muresan Razvan0---0 +
392cuciula rebeca-crina00--0 +
393Ruxandra Icleanu-0--0 +
394Gîlcă Marian Sebastian 00--0 +
395Roman George---00 +
396seot0---0 +
397Sima Sergiu Sebastian0---0 +
398Andrei Katona00--0 +
399Botez Stefan0---0 +
400Silvan-Adrian Talos000-0 +
401Gyorfi Tamas0---0 +
402Prodan Tudor0---0 +
403Tudor Lozba0---0 +
404Corbeanu Bogdan--0-0 +
405Cristian Vlad-Alexandru00--0 +
406Litan Virgil0---0 +
407Vlad Florin Ciorba0---0 +
408Vlad Bucur0---0 +
409Persa Vlad-Daniel0---0 +
410Badoiu Vlad0---0 +
411Popovici Andrei Sorin0---0 +
diff --git a/a/mc2015st.en.title b/a/mc2015st.en.title new file mode 100644 index 0000000..821c784 --- /dev/null +++ b/a/mc2015st.en.title @@ -0,0 +1 @@ +Combined standings diff --git a/a/rules.en b/a/rules.en new file mode 100644 index 0000000..97a1efb --- /dev/null +++ b/a/rules.en @@ -0,0 +1,13 @@ +

MindCoding - Rules

+ + diff --git a/a/rules.en.title b/a/rules.en.title new file mode 100644 index 0000000..c191cb5 --- /dev/null +++ b/a/rules.en.title @@ -0,0 +1 @@ +Rules \ No newline at end of file diff --git a/a/st.en b/a/st.en new file mode 100644 index 0000000..489b1dc --- /dev/null +++ b/a/st.en @@ -0,0 +1,119 @@ + + +
NrUserRound 2Round 3Round 4Total +
1Rares Buhai55514367712762 +
2Mihai Popa110012232702593 +
3Oncescu Costin Andrei4178145141745 +
4Mugurel Ionut Andreica3961262-1658 +
5Alex Velea674096861162 +
6Cosmin Rusu301718971098 +
7Vlad Duta139456266861 +
8Mărcuș Romulus George558302-860 +
9Necula Onisim--845845 +
10Patcas Csaba232208395835 +
11Mihai Nitu163493158814 +
12Catalin Stefan Tiseanu-595193788 +
13Adrian Craciun78447196721 +
14Mihai Gheorghe9698440634 +
15Alex Cociorva156199208563 +
16Mircea Popoveniuc9275381548 +
17Stefan Negrus111173229513 +
18Ionescu Teodor82169206457 +
19Dan Alexandru--415415 +
20Plop Teodor--414414 +
21Lup Vasile-207184391 +
22Onesim Robert Ioan7484202360 +
23Emanuel Truta8194144319 +
24Cristian Buleandra0212106318 +
25Petcu Ioan Vlad21577-292 +
26stefan x3292168292 +
27Andrei Stanciu--262262 +
28Nathan Wildenberg68-191259 +
29Bucevschi Alexandru-96158254 +
30Gogonea Andrei095156251 +
31Puscasu Felix3091128249 +
32Lolus-243-243 +
33Paun Matei-96140236 +
34Ciorabai Gedit3078124232 +
35Alexandru Valeanu-212-212 +
36Andrei Stan300182212 +
37jackal02429368203 +
38Irimia Rares085110195 +
39Nistor Sergiu Cosmin09579174 +
40Stefanescu Vlad7479-153 +
41Cîmpeanu Vlăduț Alexandru--152152 +
42Banu Cristian-0144144 +
43Albu Cristian49093142 +
44Mihai Enache--139139 +
45Adina Mateescu 09132123 +
46Gergely Tudor30087117 +
47Crisan Dragos30840114 +
48Radu Seteanu-3575110 +
49Bazac Tudor105--105 +
50Costin Bianca096-96 +
51Alexandru Cosmin Mihai-95-95 +
52Cosmin Andrei Carabet-95-95 +
53Suciu Victor-94-94 +
54Gabriel Badea-93093 +
55Pocola Tudor Octavian-90-90 +
56Dit Dragos-Daniel083-83 +
57Berbecariu Flaviu0-7676 +
58Palffy Sandor75--75 +
59Paul Diac72--72 +
60Vlad Badelita-72-72 +
61Calin Nicolau-71-71 +
62Luncasu Victor67--67 +
63Radu Muntean67--67 +
64Tran Bach Nguyen67--67 +
65Teudan Adina0-6464 +
66Vlad Negru64--64 +
67Rusu Iulian - Daniel610061 +
68Paslaru Tudor3030060 +
69Dragoș Alin Rotaru57--57 +
70Maria Pandele55--55 +
71Alghisi Alessandro53--53 +
72Marin Tiberiu52-052 +
73Eftime Andrei Horatiu45--45 +
74Hreapca Aurelian30--30 +
75Tilica Robert30--30 +
76clau-30-30 +
77Dragan Andrei Gabriel30--30 +
78Kis Levente Lorand30--30 +
79Mititelu Cristian30--30 +
80Nechita Sebastian30--30 +
81Florea Toma Eduard30--30 +
82AAA22AAA00-0 +
83Moldovan Catalin0--0 +
84Sbera Catalin0--0 +
85Checiu Eliza Alexandra0--0 +
86Ciprian Marin--00 +
87Luca Vlasceanu0--0 +
88Celea Matei0--0 +
89MesesanPaul00-0 +
90Zsisku Mihai0--0 +
91Octavian Duiu-0-0 +
92Omer Cerrahoglu--00 +
93Cotrut Petru0--0 +
94Romaniuc Radu Andrei0--0 +
95Sanziana Tudose0--0 +
96Sergiu P.0--0 +
97Deniz Ozguluk0--0 +
98Luca Ignatescu0--0 +
99Munteanu Virgil Petru0--0 +
100Weng Mihai Alexandru0--0 +
101Zaharia Horia0--0 +
102Bia Beniamin00-0 +
103Mircea Dima0--0 +
104Checiu Denisa Georgiana0--0 +
105Muntean Cătălin0--0 +
106Gergely David0--0 +
107Iulia Hascsi-0-0 +
108liviu0--0 +
109ciprian marin-0-0 +
110Zlatea_Cezar0--0 +
111Necula Onisim-0-0 +
112Mercea Otniel Bogdan0--0 +
113Ungurasu Razvan0--0 +
114Tudose Vlad0--0 + +
\ No newline at end of file diff --git a/a/st.en.title b/a/st.en.title new file mode 100644 index 0000000..2f91bae --- /dev/null +++ b/a/st.en.title @@ -0,0 +1 @@ +MindCoding Standings \ No newline at end of file diff --git a/a/team.en b/a/team.en new file mode 100644 index 0000000..154ac16 --- /dev/null +++ b/a/team.en @@ -0,0 +1,21 @@ +
+
+

Petru Tiberiu
Trimbitas

+Project manager +
+ +
+

Marius
Gavrilescu

+Lead Programmer +
+ +
+

Smaranda
Ciubotaru

+Marketing & PR Manager
Problemsetter
+
+ +
+

Andrei
Constantinescu

+Problemsetter +
+
diff --git a/a/team.en.title b/a/team.en.title new file mode 100644 index 0000000..852ac9d --- /dev/null +++ b/a/team.en.title @@ -0,0 +1 @@ +The Team diff --git a/a/testing.en b/a/testing.en new file mode 100644 index 0000000..65ffd83 --- /dev/null +++ b/a/testing.en @@ -0,0 +1,98 @@ +

+Testing is an important step of writing programs of any kind. In algorithm contests, bugs cost time and points, so they must be avoided. There are two strategies you can use in order to avoid bugs: detecting them in an already-written program and writing programs without them. + +

+The most common method to finding bugs in a program is by testing it. The most common way of testing during an algorithm contest is by writing two other separate programs: one that solves the problem in a very simple way (generally a brute-force solution), and one that generates a random test. Then you can repeatedly generate a test, run the two programs on the test, and compare the outputs. If they are different, there is a bug in one of the programs. + +

+Since you don't have to submit these two extra programs, you have a wider choice of tools than those that are allowed for the final solutions. For example in the ACM-ICPC you may only use C, C++, Java, and in the IOI C, C++, Pascal, but all Linux computers have Perl and Python interpreters. + +

+We'll use MaxSquare as an example problem. A possible generator is: + +

+    1 #!/usr/bin/perl -w
+    2 use v5.14;
+    3 
+    4 my $n = 1 + int rand 50;
+    5 say $n;
+    6 for my $i (1 .. $n) {
+    7     for my $j (1 .. $n) {
+    8         print 100 - int rand 200, ' ';
+    9     }
+   10     say '';
+   11 }
+
+ +We'll now need a script to run the tests. Assume that the two programs are written in C++ and named 'prog1.cpp' and 'prog2.cpp', and that the generator is named 'gen'. +' +
+    1 #!/usr/bin/perl -w
+    2 use v5.14;
+    3 
+    4 system 'make prog1 prog2';
+    5 for (1 .. 1000) {
+    6     system './gen > input';
+    7     system './prog1 < input > output1';
+    8     system './prog2 < input > output2';
+    9     die "The outputs are different!\n" if system 'diff -q output1 output2';
+   10 }
+
+ +

+If the two programs produce different outputs for a test, the script dies with an error, allowing the user to inspect the input and outputs, find the bug, and fix it. + +


+

+You can also do this in other languages, such as C++. For example: + +

+Generator: + +

+    1 #include <iostream>
+    2 #include <cstdlib>
+    3 #include <ctime>
+    4 using namespace std;
+    5 
+    6 int rnd(int a, int b) {
+    7     return a + rand() % (b - a);
+    8 }
+    9 
+   10 int main() {
+   11     srand(time(NULL));
+   12     int n = rnd(1, 100);
+   13     cout << n << '\n';
+   14     for(int i=0; i<n; ++i) {
+   15         for(int j=0; j<n; ++j)
+   16             cout << rnd(-100, 100) << ' ';
+   17         cout << '\n';
+   18     }
+   19     return 0;
+   20 }
+
+ +Test runner: + +
+    1 #include <iostream>
+    2 #include <cstdlib>
+    3 #define TESTS 1000
+    4 using namespace std;
+    5 
+    6 int main() {
+    7     system("g++ -o gen gen.cpp");//compile the files, the executable file will be named gen
+    8     system("g++ -o brute brute.cpp");
+    9     system("g++ -o ok ok.cpp");
+   10     for(int i=0; i<TESTS; ++i) {
+   11         system("./gen > input");//redirects the stdout of the program gen to the file named input
+   12         system("./brute < input > bout");//redirects the file input to stdin and stdout to bout
+   13         system("./ok <input > oout");
+   14         if(system("diff -q bout oout")) {
+   15             cout<<"Outputs differ";
+   16             return 0;
+   17         }
+   18     }
+   19     return 0;
+   20 }
+
\ No newline at end of file diff --git a/a/testing.en.title b/a/testing.en.title new file mode 100644 index 0000000..73709ba --- /dev/null +++ b/a/testing.en.title @@ -0,0 +1 @@ +Testing diff --git a/app.psgi b/app.psgi index b29127c..837dd60 100644 --- a/app.psgi +++ b/app.psgi @@ -14,7 +14,7 @@ default-src 'none' connect-src 'self' form-action 'self' frame-ancestors 'none' -img-src 'self' +img-src 'self' https://static.mindcoding.ro referrer origin-when-cross-origin script-src 'self' style-src 'self' diff --git a/css/custom.css b/css/custom.css index 0188fd4..2d5060b 100644 --- a/css/custom.css +++ b/css/custom.css @@ -68,7 +68,7 @@ ul.inline li:last-child:after { display: none !important; } -td.user, td.owner { +td.user, td.owner, .break-all { word-break: break-all; } @@ -78,4 +78,4 @@ td.user, td.owner { #themes:before { content: " Themes: "; -} \ No newline at end of file +} diff --git a/css/logo.css b/css/logo.css new file mode 100644 index 0000000..db86d4f --- /dev/null +++ b/css/logo.css @@ -0,0 +1,15 @@ +#logo { + width: 100%; + max-width: 600px; + max-height: 150px; +} + +#mind path { stroke: none } +#coding path { fill: #FFF } +#circle { stroke: #FFF } +#head { fill: #FFF } + +.logo-light #mind path { stroke: #373435 } +.logo-light #coding path { fill: #373435 } +.logo-light #circle { stroke: #373435 } +.logo-light #head { fill: #373435 } diff --git a/css/mindcoding.css b/css/mindcoding.css new file mode 100644 index 0000000..6965804 --- /dev/null +++ b/css/mindcoding.css @@ -0,0 +1,11 @@ +footer { + padding: 1.5em 0; + width: auto; + matgin: auto; + white-space: inherit; + color: inherit; +} + +#sponsors a.logo { + margin-bottom: 1em; +} diff --git a/js/90-mobilenav.js b/js/90-mobilenav.js index fb575d9..f8c9628 100644 --- a/js/90-mobilenav.js +++ b/js/90-mobilenav.js @@ -3,5 +3,5 @@ $(function(){ return; $('#title')[0].insertAdjacentHTML('beforebegin', '
Tap title to toggle menu
'); $('nav')[0].classList.add('hidden'); - $('#title').on('click', () => $('nav')[0].classList.toggle('hidden')); + $('#title,#logo').on('click', () => $('nav')[0].classList.toggle('hidden')); }); diff --git a/js/90-move-sponsors.js b/js/90-move-sponsors.js new file mode 100644 index 0000000..8ea621e --- /dev/null +++ b/js/90-move-sponsors.js @@ -0,0 +1 @@ +$(() => $('#sidebar')[0].appendChild($('#sponsors')[0])); diff --git a/js/90-nav.js b/js/90-nav.js index 03dcb82..4412e3a 100644 --- a/js/90-nav.js +++ b/js/90-nav.js @@ -6,6 +6,7 @@ const NAVS = { us: /^\/us\//, account: /^\/account$/, contribute: /^\/contribute$/, + about: /^\/about$/, }; $(function(){ diff --git a/js/90-themes.js b/js/90-themes.js index 1ff13ae..756b156 100644 --- a/js/90-themes.js +++ b/js/90-themes.js @@ -2,6 +2,12 @@ function set_style(name){ $('link[title]').each(e => e.disabled = true); $('link[title="' + name + '"]')[0].disabled = false; localStorage.setItem("theme", name); + $(function() { + if(name == 'slate' || name == 'cyborg') + $('.logo').each(e => e.classList.remove('logo-light')); + else + $('.logo').each(e => e.classList.add('logo-light')); + }); } $(function() { diff --git a/js/90-webchat-link.js b/js/90-webchat-link.js new file mode 100644 index 0000000..fe3831a --- /dev/null +++ b/js/90-webchat-link.js @@ -0,0 +1 @@ +$(() => $('#sidebar')[0].insertBefore($('#webchat')[0], $('#sidebar')[0].firstChild)); diff --git a/lib/Plack/App/Gruntmaster/HTML.pm b/lib/Plack/App/Gruntmaster/HTML.pm index 7df9ef3..7863f4f 100644 --- a/lib/Plack/App/Gruntmaster/HTML.pm +++ b/lib/Plack/App/Gruntmaster/HTML.pm @@ -89,8 +89,13 @@ sub _render { $tree->as_HTML(undef, undef, $optional_end_tags); } +my $logo = read_file 'mclogo.svg'; +$logo =~ y/\n//d; +$logo =~ s/(\s+)/ /g; + sub process_skel { my ($tree, %args) = @_; + $tree->fid('logo')->replace_with(HTML::Element::Library::super_literal $logo); $tree->content_handler( title => $args{title}, content => literal $args{meat}); @@ -176,10 +181,7 @@ sub process_pb_entry { if ($args{contest_stop}) { $tree->fid('solution')->detach; $tree->fid('solution_modal')->detach; - my $score = $tree->fid('score'); - $score->attr('data-start' => $args{open_time}); - $score->attr('data-stop' => $args{contest_stop}); - $score->attr('data-value' => $args{value}); + $tree->fid('score')->replace_content($args{value}); $tree->fid('countdown')->attr('data-stop' => $args{contest_stop}); } else { $tree->fid('job_log')->edit_href(sub{$_ .= "&private=$args{private}"}) if $args{private}; diff --git a/log.conf b/log.conf index 1f31323..dbde8c9 100644 --- a/log.conf +++ b/log.conf @@ -1,4 +1,4 @@ -log4perl.category. = TRACE, +log4perl.category. = TRACE, stderr log4perl.appender.stderr = Log::Log4perl::Appender::Screen log4perl.appender.stderr.layout = Log::Log4perl::Layout::PatternLayout diff --git a/logos/bigstep.png b/logos/bigstep.png new file mode 100644 index 0000000..3ee4d6b Binary files /dev/null and b/logos/bigstep.png differ diff --git a/logos/bosch.jpg b/logos/bosch.jpg new file mode 100644 index 0000000..ecd2fbe Binary files /dev/null and b/logos/bosch.jpg differ diff --git a/logos/cos.png b/logos/cos.png new file mode 100644 index 0000000..371fb2c Binary files /dev/null and b/logos/cos.png differ diff --git a/logos/csf.png b/logos/csf.png new file mode 100644 index 0000000..2193176 Binary files /dev/null and b/logos/csf.png differ diff --git a/logos/easyhost.png b/logos/easyhost.png new file mode 100644 index 0000000..3a25808 Binary files /dev/null and b/logos/easyhost.png differ diff --git a/logos/emag.png b/logos/emag.png new file mode 100644 index 0000000..1fbbe48 Binary files /dev/null and b/logos/emag.png differ diff --git a/logos/endava.jpg b/logos/endava.jpg new file mode 100644 index 0000000..9e49b07 Binary files /dev/null and b/logos/endava.jpg differ diff --git a/logos/eyc.png b/logos/eyc.png new file mode 100644 index 0000000..a203b2f Binary files /dev/null and b/logos/eyc.png differ diff --git a/logos/facebook.png b/logos/facebook.png new file mode 100644 index 0000000..cd2d5f7 Binary files /dev/null and b/logos/facebook.png differ diff --git a/logos/hermes-light.png b/logos/hermes-light.png new file mode 100644 index 0000000..2e2e417 Binary files /dev/null and b/logos/hermes-light.png differ diff --git a/logos/hermes.png b/logos/hermes.png new file mode 100644 index 0000000..fc8e791 Binary files /dev/null and b/logos/hermes.png differ diff --git a/logos/spyhce.png b/logos/spyhce.png new file mode 100644 index 0000000..fdaa0d3 Binary files /dev/null and b/logos/spyhce.png differ diff --git a/logos/takeofflabs-light.png b/logos/takeofflabs-light.png new file mode 100644 index 0000000..ce72061 Binary files /dev/null and b/logos/takeofflabs-light.png differ diff --git a/logos/takeofflabs.png b/logos/takeofflabs.png new file mode 100644 index 0000000..e0efc97 Binary files /dev/null and b/logos/takeofflabs.png differ diff --git a/logos/telenav.png b/logos/telenav.png new file mode 100644 index 0000000..26fc522 Binary files /dev/null and b/logos/telenav.png differ diff --git a/logos/usr.png b/logos/usr.png new file mode 100644 index 0000000..05ae579 Binary files /dev/null and b/logos/usr.png differ diff --git a/logos/yardi-light.png b/logos/yardi-light.png new file mode 100644 index 0000000..d99f4dd Binary files /dev/null and b/logos/yardi-light.png differ diff --git a/logos/yardi.png b/logos/yardi.png new file mode 100644 index 0000000..cde5d87 Binary files /dev/null and b/logos/yardi.png differ diff --git a/make_static.PL b/make_static.PL index 0c43960..23c5643 100644 --- a/make_static.PL +++ b/make_static.PL @@ -3,6 +3,7 @@ use v5.14; use warnings; use CSS::Minifier::XS qw/minify/; +use CSS::SpriteMaker; use Digest::SHA qw/sha256_base64/; use IO::Compress::Gzip qw/gzip/; use File::Slurp qw/read_file write_file edit_file_lines/; @@ -12,6 +13,31 @@ mkdir 'static'; mkdir 'static/css'; mkdir 'static/js'; +sub make_sprite { + my $maker = Local::CSS::SpriteMaker->new( + css_class_prefix => 'logo-', + rc_override_classname => sub { + my ($name) = @_; + $name =~ s/-light/.logo-light/r; + } + ); + + $maker->make_sprite( + source_images => ['logos/'], + target_file => 'static/logos.png', + add_extra_padding => 10, + ); + + $maker->print_css( + filename => 'css/logos.css', + sprite_filename => '/static/logos.png', + ); + + system 'pngnq-s9', '-s1', 'static/logos.png'; + system 'optipng', '-o7', '-zm1-9', 'static/logos-nq8.png'; + rename 'static/logos-nq8.png', 'static/logos.png'; +} + sub gzip_file { my ($file) = @_; gzip $file => "$file.gz", -Level => 9, Minimal => 1; @@ -63,6 +89,14 @@ sub make_js { gzip_file 'static/js/all.js'; } +my $sprite_mtime = -M 'static/logos.png' // 0; +for () { + if (!$sprite_mtime || $sprite_mtime > -M) { + make_sprite; + last + } +} + my $css_mtime = -M 'static/css/slate.css' // 0; for (, ) { if (!$css_mtime || $css_mtime > -M) { @@ -84,4 +118,25 @@ edit_file_lines { return unless $file; my $hash = sha256_base64 scalar read_file $file; s/integrity=".*"/integrity="sha256-$hash="/; -} 'tmpl/skel.en' +} 'tmpl/skel.en'; + +package + Local::CSS::SpriteMaker; + +use parent qw/CSS::SpriteMaker/; + +sub _get_stylesheet_string { + my $self = shift; + my @ret = split "\n", $self->SUPER::_get_stylesheet_string(@_); + shift @ret; + @ret = sort @ret; + unshift @ret, <