Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 480 Ecuatii 2 : August 28, 2011, 11:34:11
Scuze George nu mam gandit ca pot fi mai multe spatii credeam ca e doar unul acum iau 100p va multumesc tuturor pentru ajutor.
2  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 480 Ecuatii 2 : August 27, 2011, 17:43:45
Fac deja asta aici
Cod:
fin>>n;
fin.get();
3  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 480 Ecuatii 2 : August 27, 2011, 09:51:22
Fac asta aici:
Cod:
eval(ec,strlen(ec),ms,xs);
       fin.get();
        fin.get(ec,999,'\n');
        xd=md=0;
        eval(ec,strlen(ec),md,xd);
        fin.get();
4  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 480 Ecuatii 2 : August 26, 2011, 21:44:19
Nu inteleg de ce iau doar 40P pe evaluatorul de la oji iau 100P , nu inteleg unde gresesc.Am folosti fprintf in loc de fout<<fixed<<setprecision(4) am incercat sa cresc precizia la  10  nimic nu merge.
Sursa mea:
Cod:
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
void eval(char *ec,int n,int & mem,int & x);
int main()
{
    ifstream fin("ecuatii2.in");
    FILE *g=fopen("ecuatii2.out","w");
    char ec[250];
    int n,xs,xd,ms,md;
    fin>>n;
    fin.get();
    for(int i=1;i<=n;++i)
    {
        xs=xd=ms=md=0;
        fin.get(ec,999,'=');
        xs=xd=ms=md=0;
        eval(ec,strlen(ec),ms,xs);
        fin.get();
        fin.get(ec,999,'\n');
        xd=md=0;
        eval(ec,strlen(ec),md,xd);
        fin.get();
        if(ms==md&&xs==xd)
            fprintf(g,"infinit \n");
        else
        {
            int ter=ms-md,x=xs-xd;
            if(x==0 && ms!=md)
                fprintf(g,"imposibil \n");
            else
            {
                double rez=(double)ter/(x*-1);
                fprintf(g,"%.4f \n",rez);
            }

        }
    }

    fin.close();
    fclose(g);
    return 0;
}

void eval(char *ec,int n,int & mem,int & x)
{
    int nr=0; char c,semn;
    for(int i=0;i<n;++i)
    {
        nr=0;
        if(ec[i]>='0'&&ec[i]<='9')
        {
            if(i==0) semn='+';
            else semn=ec[i-1];
            while(ec[i]>='0'&&ec[i]<='9'&&i<n)
            {
                c=ec[i];
                nr=nr*10+atoi(&c);
                ++i;
            }
            if(i==n) --i;
            if(ec[i]=='x')
            {

                if(nr==0) ++x;
                else if(semn=='+') x+=nr;
                else x-=nr;
                ++i;
            }
            else
            {
                if(semn=='+') mem+=nr;
                else mem-=nr;
            }
        }
        else if(ec[i]=='x')
        {
            if(i==0) semn='+';
            else semn=ec[i-1];
            if(semn=='+') ++x;
            else --x;
        }
    }
}
 
5  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1000 Taxe2 : August 01, 2011, 19:30:53
Nu e Lee ci programare dinamica.
6  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: citirea : August 01, 2011, 18:52:20
<fisier>.get(variabila,nrcaractere,'\n')
7  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 479 Paritate : Iulie 15, 2011, 10:57:34
Sursa mea ia Killed by signal 11(SIGSEGV) pe toate testele de la InfoArena dar pe evaluatorul de la OJI iau 100P.
Unde poate fi problema?
Cod:
#include <fstream>
using namespace std;
int pow(int a,int b);
int main()
{
    char v[9],h[60000*8];
    int poz=0,x[10000],n2=0,nr=0;
    ifstream fin("paritate.in");
    while(!fin.eof())
    {
        fin.get(v,9);
        poz++;
        int nr_1=0,p=0,aux=0;
        for(int i=7;i>0;i--)
        {
            if(v[i]=='1')
            {
                aux+=(int)pow(2,p);
                nr_1++;
            }
            p++;
        }
        if(nr_1%2==0)
        {
            if(v[0]=='0')
            {
                nr++;
                h[nr]=(char)aux;
            }
            else
            {
                n2++;
                x[n2]=poz-1;
            }
        }
        else
        {
            if(v[0]=='1')
            {
                nr++;
                h[nr]=(char)aux;
            }
            else
            {
                n2++;
                x[n2]=poz-1;
            }
        }
    }
    fin.close();
    ofstream fout("paritate.out");
    if(n2==0)
    {
        fout<<"DA"<<"\n";
        for(int i=1;i<=nr;i++)
        fout<<h[i];
    }
    else
    {
        fout<<"NU"<<"\n";
        for(int i=1;i<=n2;i++)
        fout<<x[i]<<" ";
    }
    fout.close();
    return 0;
}
int pow(int a,int b)
{
    int s=1;
    if(b==0) return 1;
    if(b==1) return 2;
    for(int i=1;i<=b;i++)
    s*=a;

    return s;
}
8  Comunitate - feedback, proiecte si distractie / Off topic / Răspuns: C# : Iunie 26, 2011, 19:21:57
Crezi un bitmap de with si height egal cu poza,dsenezi o line intre cele 2 coordonate dupacare poza.image=bitmap si ai terminat.
Daca vrei iti arat codul.
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines