Cod sursa(job #1239142)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 8 octombrie 2014 13:26:15
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.1 kb
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <string>
#include <cmath>
#include <map>
#include <set>
#include <vector>

#define NMAX 35
#define eps 0.00000001
using namespace std;

class sistem{
    inline void schimba(int l1,int l2){
        for(int i=1;i<=m+1;i++)
            swap(mat[l1][i],mat[l2][i]);
    }

    inline void imp(int l1,double alpha){
        for(int i=1;i<=m+1;i++)
            mat[l1][i]/=alpha;
    }

    inline void scade(int l1,int l2,double alpha){
        for(int i=1;i<=m+1;i++)
            mat[l1][i]-=alpha*mat[l2][i];
    }
public:
    int n,m;
    double mat[NMAX][NMAX];
    double sol[NMAX];

    inline void Gauss_Jordan(){
        int i,j;
        for(i=1;i<=n;i++){
            for(j=i;j<=n;j++)
                if(fabs(mat[j][i])>=eps)
                    break;
            schimba(i,j);
            imp(i,mat[i][i]);

            for(j=1;j<=n;j++)
                if(i!=j)
                    scade(j,i,mat[j][i]);
        }
    }
}x;

set<string> nume_salate;
set<string> nume_ings;
map<string,int> harta;
map<int,string> harta_inv;

struct salata
{
    string nume;
    vector<pair<string,int> > ings;
}salate[NMAX];

int main()
{
    char x;
    int t;
    cin>>t;

    for(int i=1;i<=t;i++){
        cin>>salate[i].nume;
        nume_salate.insert(salate[i].nume);

        if(cin.eof())
            break;
        cin>>x;

        int s=0;
        string curent;
        int aux;
        while(s!=100){
            cin>>curent;
            nume_ings.insert(curent);

            cin>>aux;

            s+=aux;
            salate[i].ings.push_back(make_pair(curent,aux));
        }
    }

    set<string>::iterator it;
    int poz=0;

    for(it=nume_salate.begin();it!=nume_salate.end();it++){
        harta[*it]=++poz;
        harta_inv[poz]=*it;
        cout<<"pt "<<*it<<' '<<poz<<endl;
    }

    for(it=nume_ings.begin();it!=nume_ings.end();it++){
        harta[*it]=++poz;
        harta_inv[poz]=*it;
        cout<<"pt "<<*it<<' '<<poz<<endl;
    }

    return 0;
}