Cod sursa(job #1361525)

Utilizator catalinagherasim1Catalina Gherasim catalinagherasim1 Data 25 februarie 2015 21:57:03
Problema Convertor Scor 100
Compilator cpp Status done
Runda rosedu_cdl_2015 Marime 1.44 kb
#include<iostream>
#include<fstream>
#include<cstring>
#include<cstdio>
#include<ctype.h>
using namespace std;


ofstream fout("convertor.out");
#define MAX 10400000
char s[MAX];
int i;
string sir;
string aux;

int main()
{
	freopen("convertor.in","r",stdin);
    fread(s,1,MAX,stdin);
	//afiseaza primul rand din csv
	i=0;
	int ok=0;
	while(s[i]!='{')
		i++;
	while(s[i]!='}')
	{
		i++;
		if(s[i]=='"')
			ok+=1;
		if(ok==1 && s[i]!='"')
			sir+=s[i];
		if(s[i]==',')
		{
			ok=0;
			sir+=s[i];
		}
	}
	sir+=',';
	sir+='\n';
	//afiseaza restul randurilor
	i=0;
	ok=0;
	while(s[i]!='{')
		i++;
	while(s[i]!=']')
	{
		i++;
		if(s[i]==':')
            ok=1;
        if(ok==1 && s[i]!=':' && s[i]!='"' &&s[i]!=',' && s[i]!='\n' && s[i]!='}' && s[i]!='{' && s[i] != '{' && s[i] != ']')
            aux+=s[i];
		if(s[i]==',')
		{
			ok=0;
			int p=0;
			while(aux[p]==' ')
                p++;
            int u=aux.size()-1;
            while(aux[u]==' ')
                u--;
            for(int k=p;k<=u;k++)
                sir+=aux[k];
                aux="";
            sir+=s[i];
		}
		if (s[i] == '{')
            sir+='\n';
	}
	int p=0;
			while(aux[p]==' ')
                p++;
            int u=aux.size()-1;
            while(aux[u]==' ')
                u--;
            for(int k=p;k<=u;k++)
                sir+=aux[k];
	sir+=',';
    fout<<sir;
    fout.close();
    return 0;
}