Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2015-02-03 19:04:19.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:convertor.in, convertor.outSursăROSEdu CDL
AutorAda Solcan, Alex PalcuieAdăugată depalcuiealexAlex Palcuie palcuiealex
Timp execuţie pe test0.05 secLimită de memorie8192 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Convertor

Ada, Călin şi Andrei s-au săturat de învăţat algoritmică la facultate şi vor să afle lucruri mai practice. Pentru asta, s-au hotărât să aplice la ROSEdu CDL. Din nefericire, organizatorii îi obligă şi aici să rezolve o problemă în care trebuie să facă un algoritm. Noroc că nu e nevoie de prea multe cunoştiinţe legate de complexităţi de timp.

Se dă un fişier JSON în care se află o listă de obiecte. Fiecare obiect conţine o listă de intrări de tipul cheie-valoare, unde valoarea poate fi de tip şir de caractere sau un număr întreg. Se cere să se transforme într-un fişier CSV.

Date de intrare

Fişierul de intrare convertor.in va conţine un JSON.

Date de ieşire

În fişierul de ieşire convertor.out va conţine CSV-ul transformat.

Restricţii

  • liniile vor conţine maxim 1.024 de caractere
  • vor fi maxim 128 de linii

Exemplu

convertor.inconvertor.out
[{
"id": 1,
"language": "Ruby",
"usage": "Mainly by hipsters.",
"power": 4
}, {
"id": 2,
"language": "Python",
"usage": "Computer scientists and some wannabe hipsters.",
"power": 2
}, {
"id": 3,
"language": "C++",
"usage": "Hardcore people who love dangling pointers.",
"power": 100
}, {
"id": 4,
"language": "Haskell",
"usage": "A lonely dude in Massachussets.",
"power": 999999
}]
id,language,usage,power,
1,Ruby,Mainly by hipsters.,4,
2,Python,Computer scientists and some wannabe hipsters.,2,
3,C++,Hardcore people who love dangling pointers.,100,
4,Haskell,A lonely dude in Massachussets.,999999,

Dacă am fi la un concurs normal pe Infoarena, problema ar fi dată aşa. Dar cum noi vrem să simulăm cât mai bine viaţa reală, fişierul JSON din nefericire nu va fi frumos formatat. Dar vom avea grijă ca el să fie corect.

Exemplu

convertor.inconvertor.out
[{"name" :  "FMI",
"students"  : 1000},
{"name": "ACS",
"students": 5000}, {  "name" :
"UBB", "students":  3000}]
name,students,
FMI,1000,
ACS,5000,
UBB Cluj,3000,

Note

  • Valorile din cheile JSON sunt mereu şiruri de caractere sau numere întregi. Nu există alte obiecte imbricate în valori.
  • Se garantează că fiecare obiect va conţine aceleaşi chei, ele vor fi în aceiaşi ordine şi vor avea acelaşi tip.
  • Nu va exista caracterul newline in interiorul unei chei sau al unei valori.
  • În JSON, acoladele, parantezele drepte şi semnul două puncte pot fi separate prin mai multe spaţii sau linii goale.
  • Liniile din CSV-urile vor conţine la sfârşit mereu o virgulă.
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?