Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 564 Rfinv : Noiembrie 11, 2013, 11:48:57
Imi poate explica, va rog, cineva care este motivul pentru care nu primesc punctaj pe sursa asta?

Cod:
#include<fstream>
using namespace std;
ifstream f("rfinv.in");
ofstream g("rfinv.out");
int t;
int n,m;
int a[51][51];
int b[51][51];
int i,j;
int x,y;
int ok;
int r;
int main()
{
    f>>t;
    for(int k=1;k<=t;k++)
    {
        ok=0;
        f>>n>>m;
        for(i=1;i<=n;i++)
         for(j=1;j<=n;j++)
          a[i][j]=b[i][j]=0;
        for(i=1;i<=m;i++)
        {
            f>>x>>y;
            a[x][y]=a[y][x]=1;
        }
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                f>>r;
                b[i][j]=r;
            }
        }
        for(i=1;i<=n;i++)
         for(j=1;j<=n;j++)
          if((a[i][j]==0&&b[i][j]>0)||(a[i][j]>0&&b[i][j]==0))
              ok=1;
        if(ok==0)
          g<<"DA"<<"\n";
        else
          g<<"NU"<<"\n";
    }
    return 0;
}
2  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 198 Custi : Iunie 13, 2013, 16:38:09
Iau 30 pe asta(TLE)... daca imi poate explica cineva ce trebuie sa mai modific pentru a da in timp.


Cod:
#include<fstream>
using namespace std;
ifstream f("custi.in");
ofstream g("custi.out");
int n,x,sum[1001][1001];
int i,j,k;
int nr,nr1;
int s;
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
    {
        f>>x;
        if(x==1)
         nr1++;
        sum[i][j]=x+sum[i][j-1]+sum[i-1][j]-sum[i-1][j-1];
    }
    g<<nr1<<"\n";
    for(k=2;k<=n;k++)
    {
        nr=0;
        for(i=k;i<=n;i++)
         for(j=k;j<=n;j++)
         {
             s=sum[i][j] - sum[i-k][j] - sum[i][j-k] + sum[i-k][j-k];
             if(s==(k*k))
              nr++;
         }
         g<<nr<<"\n";
    }
    return 0;
}
3  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 132 Distante : Mai 07, 2013, 08:50:26
Va rog frumos daca puteti sa ma ajutati putin. Am trimis o sursa care da 0 puncte. Treaba este ca, la primul test totul da bine si de la urmatoarele nu mai da corect. Cred ca are legatura cu folosirea succesiva a unor vectori. Oricum, daca imi puteti spune opinia voastra...

Asta e sursa Very Happy

Cod:
#include<fstream>
#define inf 10001
using namespace std;
ifstream f("distante.in");
ofstream g("distante.out");
struct muchie
{
    long x,y,c;
}q[100001];
long t;
long n,m,s,gasit;
long d[50001];
long v[50001];
int main()
{
    long x,y,c;
    long ok;
    f>>t;
    for(long k=1;k<=t;k++)
    {
        gasit=0;
        f>>n>>m>>s;
        for(long j=1;j<=n;j++)
         f>>v[j];
        for(long j=1;j<=m;j++)
        {
            f>>x>>y>>c;
            q[j].x=x;
            q[j].y=y;
            q[j].c=c;
            if(x==s)
             d[y]=c;
            if(y==s)
             d[x]=c;
        }
        for(long i=1;i<=n;i++)
         if(d[i]==0&&i!=s)
             d[i]=inf;
        do
        {
            ok=1;
            for(long i=1;i<=m;i++)
             if(d[q[i].y]>d[q[i].x]+q[i].c)
             {
                 d[q[i].y]=d[q[i].x]+q[i].c;
                 ok=0;
             }
        }while(!ok);
        /*for(long i=1;i<=n;i++)
         g<<d[i]<<" ";
        g<<"\n";*/
        for(long i=1;i<=n;i++)
          if(d[i]!=v[i])
           gasit=1;
        if(!gasit)
         g<<"DA"<<"\n";
        else
         g<<"NU"<<"\n";
    }
    return 0;
}

Foloseste tag-ul [ code ] [/ code ] cand postezi cod.
4  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 477 Alee : Ianuarie 11, 2013, 11:48:42
Problema mi-a iesit de 90 de puncte...imi da un Memory Limit exceended la testul 8...aveti idee de ce??
PS: am rezolvat prin lee clasic
5  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 002 Jocul Flip : Ianuarie 04, 2013, 12:50:41
ideea e usoara,eu zic ca trebuie facut asa:
1:calculez suma de pe fiecare linie(linia i) si verific daca suma<suma*(-1).daca e asa inmultesti fiecare din termenii de pe linia i cu (-1);
2:calculez suma de pe fiecare coloana(coloana j) si verific daca suma<suma*(-1).daca e asa inmultesti fiecare din termenii de pe coloana j cu (-1);
3.explicatie:daca (-a)+b+(-c)=s,atunci a+(-b)+c=s*(-1);(s=(-a)+b+(-c);daca il inmultesti pe s cu (-1) este clar ca suma relatiei *(-1) este s(s cel nou))
acum nu stiu cat de rapid e acest algoritm,cred ca face mai mult de 60-70 de puncte(sper)

Exact asta a fost si ideea mea si am luat 20 de puncte pe ea... sad
6  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 821 Expresie : Septembrie 11, 2012, 10:22:12
Are cineva idee de ce imi da gresit la testul 9?
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines