Afişează mesaje
Pagini: [1] 2
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 011 Copaci : Aprilie 20, 2017, 10:57:03
eu la problema asta am folosit long long pentru arie in loc de double si am luat 100. De ce functioneaza si cu long long? Sunt gresite testele sau nu conteaza, iar daca nu conteaza de ce merge?
2  infoarena - concursuri, probleme, evaluator, articole / Arhiva Infoarena Monthly / Răspuns: 060 Spargere2 : August 31, 2016, 19:21:34
la problema asta se intampla ceva ciudat. intre job #1751160  si job #1751161  am mai declarat in plus un vector iar pe cea cu vectorul in plus am primit 100 si pe cea fara el am primit 0. Intrebarea mea este dc?
3  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 005 Potrivirea sirurilor : August 07, 2015, 14:16:55
Cod:
void make_prefix(void)
{
    int i, q = 0;
 
    for (i = 2, pi[1] = 0; i <= M; ++i)
    {
        while (q && A[q+1] != A[i])
            q = pi[q];
        if (A[q+1] == A[i])
            ++q;
        pi[i] = q;
    }
dc intotdeauna in while() se pune q=pi[q]? Din moment ce elementele nu sunt egale de ce nu se sare direct la q=0 deoarece de acolo incepe prefixul. As vrea o explicatie si un exemplu eventual care nu functioneaza corect pe ceea ce am spus eu
4  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 198 Custi : Martie 02, 2015, 19:32:20
ce e gresit la dinamica asta ca iau numai 10 pct

 for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
    {int u=0;
        fscanf(f,"%d",&z);
        if(z==1)
        {m[j]=1;
        }
        if(m[i-1][j-1]!=0&&z==1)
        {
            if(m[i-1][j]==m[j-1])
                {if(m[i-m[i-1][j]][j-m[i-1][j]]!=0)
                    m[j]=m[i-1][j]+1;
                    else
                    {m[j]=m[i-1][j];
                    }
                }
                else
                if(m[i-1][j]>m[j-1]&&(m[i-1][j]!=0&&m[j-1]!=0))
                m[j]=m[i-1][j];
                else
            if(m[i-1][j]<m[j-1]&&(m[i-1][j]!=0&&m[j-1]!=0))
                m[j]=m[j-1];
        }
    }
am gasit problema
5  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 198 Custi : Martie 02, 2015, 19:30:06
ce e gresit la dinamica asta ca iau numai 10 pct

 for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
    {int u=0;
        fscanf(f,"%d",&z);
        if(z==1)
        {m[j]=1;
        }
        if(m[i-1][j-1]!=0&&z==1)
        {
            if(m[i-1][j]==m[j-1])
                {if(m[i-m[i-1][j]][j-m[i-1][j]]!=0)
                    m[j]=m[i-1][j]+1;
                    else
                    {m[j]=m[i-1][j];
                    }
                }
                else
                if(m[i-1][j]>m[j-1]&&(m[i-1][j]!=0&&m[j-1]!=0))
                m[j]=m[i-1][j];
                else
            if(m[i-1][j]<m[j-1]&&(m[i-1][j]!=0&&m[j-1]!=0))
                m[j]=m[j-1];
        }
    }
6  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1296 Costperm : Februarie 25, 2015, 21:02:17
fac ca si in solutie adica pentru fiecare element verific cate sunt mai mici si imi da tle. Cum pot sa rezolv problema?
7  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 528 Trompeta : Februarie 14, 2015, 21:07:05
ce se intampla cand nu pot imbunatatii rezultatul? adaug numerele in continuare? si care este complexitatea optima?
8  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1203 Robot3 : Februarie 10, 2015, 20:31:21
de ce iau numai incorect ca pe testele pe care am incercat merge.Un hint ceva?
#include<iostream>
using namespace std;
#include<fstream>
int n,m,x,y,a[1005][1005],i,j,vr;
long long suma;
char s[5005];
int main()
{
    fstream f("robot3.in");
    ofstream g("robot3.out");
    f>>n;
    f>>m;
    f>>x;
    f>>y;
    for(i=0;i<m;i++)
        f>>s;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
        f>>a[j];
        suma=a
  • [y];
        if(s[0]=='S')
            x++;
        else
            if(s[0]=='E')
            y++;
        else
            if(s[0]=='V')
            y--;
        else
            if(s[0]=='N')
            x--;
 
    for(i=1;i<m;i++)
    {
    suma=(suma+a
  • [y])-1;

    if(suma<0)
        {vr=1;
 
        g<<x<<" "<<y;
            break;
        }
        if(s=='S')
            {x++;
            if(suma==0&&suma+a
  • [y]==0)
                {
                g<<x-1<<" "<<y;
                vr=1;
                break;}
            }
        else
            if(s=='E')
            {y++;
            if(suma==0&&suma+a
  • [y]==0)
                {
                g<<x<<" "<<y-1;
                vr=1;
            break;}
            }
        else
            if(s=='V')
            {y--;
             if(suma==0&&suma+a
  • [y]==0)
                {
                g<<x<<" "<<y+1;
                vr=1;
            break;}
            }
        else
            if(s=='N')
            {x--;
             if(suma==0&&suma+a
  • [y]==0)
                {
                g<<x+1<<" "<<y;
                vr=1;
            break;}
            }
    }
    if(vr==0)
    {g<<x<<" "<<y;
    }
}
9  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1203 Robot3 : Februarie 10, 2015, 19:49:40
robotul poate acumula energie si din patratelele de langa el sau numai din acelea pe care le parcurge?
10  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1097 Difprim : Ianuarie 31, 2015, 20:54:17
ce este gresit la sursa asta ca da incorect pe testu 1

#include<iostream>
using namespace std;
#include<stdio.h>
#include<math.h>
int i,j,a,b,maxim,u,q,w,t,nr;
bool c[10000000];
FILE *f,*g;
int main()
{
     f=fopen("difprim.in","r");
    g=fopen("difprim.out","w");
     fscanf(f,"%d %d",&a,&b);
  for (i = 3; i <= sqrt(b); i += 2) {
    if (c == 0) {
      for (j = i+i+i; j <= b; j += i << 1) {
        c[j] = 1;
      }
    }
  }
    if(a%2==0)
        a++;
    for(i=a;i<=b;i=i+2)
        if(!c)
        {u=i;
    break;}
      for(i=u+2;i<=b;i=i+2)
        if(c==0)
      {
          if(i-u>maxim)
          {
              maxim=i-u;
              q=u;
              w=i;
          }
          u=i;
      }
      if(q!=w&&q!=0&&w!=0)
      fprintf(g,"%d %d",q,w);
      else
        fprintf(g,"-1");
}
11  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 886 Numar3 : Decembrie 09, 2014, 22:12:08
va rog sa imi spuneti care e problema cu testul 9 pls ca ma chinui de vreo saptamana
12  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 026 Energii : Decembrie 05, 2014, 22:09:52
de ce i-au TLE pe sursa asta?


#include<iostream>
using namespace std;
int greu[10001],pierd[10001],castig[1000000],i,n,s=999999999,cautat,smax,j;
#include<fstream>
ifstream f("energii.in");
ofstream g("energii.out");
int main()
{
   f>>n>>cautat;
    for(i=1;i<=n;i++)
    {f>>greu>>pierd;
        smax=smax+greu;
    }
 for(i=1;i<=smax;i++)
    castig=999999999;
    for(i=1;i<=n;i++)
        for(j=smax-greu;j>=0;j--)
            if(castig[j+greu]>castig[j]+pierd)
        {
            castig[j+greu]=castig[j]+pierd;
        }
        int maximul=999999999;
        for(i=cautat;i<=smax;i++)
            if(maximul>castig)
                maximul=castig;
      if(maximul!=999999999)
      g<<maximul;
      else
        g<<"-1";
}
13  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 491 Lacusta : Decembrie 01, 2014, 22:37:22
am facut programu ca si la oji(exact) si i-au memory limit exced.Tot am citit forumul.Are de a face cu tipul datelor sau sa fac numai cu 2 linii.Precizez ca pe toate cazurile de la oji imi da corect
14  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 886 Numar3 : Noiembrie 29, 2014, 17:59:09
la testele de la baraj nu i-au nici un "incorect".Ce are acel test 9?
15  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 886 Numar3 : Noiembrie 29, 2014, 17:36:42
care este diferenta dintre FILE si fstream?
16  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 886 Numar3 : Noiembrie 29, 2014, 17:28:43
ce poate avea testul 9 ca i-au incorect
#include<iostream>
using namespace std;
#include<fstream>
ifstream f ("numar3.in", ifstream::in);
ofstream g ("numar3.out",ofstream::out);
char aux[3],nr[3];
long int i,n,indice,finalu,frecv[12],minim=10,x;
int main()
{
       f>>n;
       f>>aux[0];
    frecv[aux[0]-48]++;
    for(i=1;i<n;i++)
    {
        f>>nr[0];
       frecv[nr[0]-48]++;
        if(aux[0]>=nr[0])
            indice++;
            if(aux[0]<nr[0]||i==n-1)
        {
            if(i==n-1&&indice==1)
            {
                finalu=n-indice;
            }
            else
            finalu=n-indice-1;
            indice=0;

        }
        aux[0]=nr[0];
    }
   finalu--;
   ifstream f ("numar3.in", ifstream::in);
   f>>n;
      for(i=0;i<finalu;i++)
      {
          f>>aux[0];
          g<<aux[0];
          frecv[aux[0]-48]--;
      }
      f>>nr[0];
      for(i=(nr[0]-48)+1;i<=9;i++)
      {
          if(frecv!=0)
          {
              minim=i;
              frecv[minim]--;
              break;
          }
      }
      g<< minim;
     for(i=0;i<=9;i++)
        if(frecv!=0)
     {
         for(int j=1;j<=frecv;j++)
            g<<i;
     }
}
17  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 333 Balanta : Noiembrie 19, 2014, 20:47:00
ce este special la testul 10 ? ca nu reusesc sa ma prind ce omit in rezolvare
18  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 126 Lungimi de interval : Februarie 18, 2014, 20:03:06
am rezolvat.era scrierea in fisier. nu faceam end line dupa ce citeam un test
19  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 126 Lungimi de interval : Februarie 18, 2014, 20:00:37
ce pot sa gresesc daca am facut exact ca in solutie, am testat toate exemplele de pe acest forum si tot i-au incorect? unde ar fi greseala ?
20  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 126 Lungimi de interval : Februarie 17, 2014, 21:19:34
Cod:
#include<iostream>
using namespace std;
#include<stdio.h>
#include<stdlib.h>
FILE *f,*g;
int n,i,j,t;
struct punct
{
    long long a,b;
};
punct c[5005];
int aux[5005];
long long num;
int tu(int p,int m,int q)
{punct b[5005];
    int i1=p,i2=m+1,x=0;
    while(i1<=m&&i2<=q)
    {
        if(c[i1].a<c[i2].a)
        {
            b[x]=c[i1];
            x++;
            i1++;
        }
        else
            if(c[i1].a>c[i2].a)
        {
            b[x]=c[i2];
            x++;
            i2++;
        }
        else
        {
            if(c[i1].b<c[i2].b)
            {
                b[x]=c[i1];
                x++;
                i1++;
            }
            else
            {
                b[x]=c[i2];
                x++;
                i2++;
            }
        }
    }
    while(i1<=m)
    {
        b[x]=c[i1];
        x++;
        i1++;
    }
    while(i2<=q)
    {
        b[x]=c[i2];
        x++;
        i2++;
    }
    for(int z=p;z<=q;z++)
    c[z]=b[z-p];
}
int io(int p,int q)
{
    if(p<q)
    {
        int mij=(p+q)/2;
        io(p,mij);
        io(mij+1,q);
        tu(p,mij,q);
    }
}
int main()
{
    f=fopen("linterv.in","r");
    g=fopen("linterv.out","w");
    fscanf(f,"%d",&t);
    while(t)
    {i=0;
     i++;
     num=0;
       fscanf(f,"%d",&n);
       for(i=1;i<=n;i++)
       fscanf(f,"%lld%lld",&c[i].a,&c[i].b);
      io(1,n);
      int x=1;
       for(i=2;i<=n;i++)
        {if(i==x)
        i++;

            if(c[i].b>=c[x].b&&aux[i]==0&&c[i].a<=c[x].b)
                {
                    if(c[i].b-c[x].b<0)
                num=num-(c[i].b-c[x].b);
                else
                    num=num+c[i].b-c[x].b;
            aux[i]=1;}
            else
                if(c[i].b<=c[x].b&&c[i].a>=c[x].a)
                aux[i]=1;
                else
                    if(c[i].a>=c[x].b)
                    {x++;
                    i--;
                    }

        }
        for(i=1;i<=n;i++)
           if(aux[i]==0)
            {
                if(c[i].b-c[x].b<0)
                    num=num-(c[i].b-c[x].b);
                else
                    num=num+c[i].b-c[x].b;
            }
           fprintf(g,"%lld",num);
            for(i=1;i<=n;i++)
                {aux[i]=0;
            c[i].a=c[i].b=0;
            }
            n=0;
    t--;
    }
}
21  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 024 Sume : Februarie 17, 2014, 18:13:42
pai am obs faptul ca daca ai 6 numere in fisierul de iesire o sa faci sume de 5+4+3+2+1 si iti dau 15 perechi cum este in cel de intrare si am mai facut ceva obs si am reusit sa il aflu cate numere vor fi in cel de iesire folosindu-ma de cel de intrare. acuma sper ca este bine gandirea altfel corecteaza-ma ca sa refac.
22  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 024 Sume : Februarie 17, 2014, 18:13:01
pai am obs faptul ca daca ai 6 numere in fisierul de iesire o sa faci sume de 5+4+3+2+1 si iti dau 15 perechi cum este in cel de intrare si am mai facut ceva obs si am reusit sa il aflu cate numere vor fi in cel de iesire folosindu-ma de cel de intrare
23  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1000 Taxe2 : Februarie 16, 2014, 19:09:34
si daca reduc dimensiuneile cozii i-au killsiegv si coada are 199 milioane
24  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1000 Taxe2 : Februarie 16, 2014, 13:56:58
#include<iostream>
using namespace std;
#include<stdio.h>
const int x1[4]={1,-1,0,0};
const int y1[4]={0,0,-1,1};
FILE *f,*g;
short int a[161][161],c[161][161],i,j,n,inceput=1,sfarsit=1,s,k;
struct punct
{
    short int ls,ld,d;
};
punct coada [199999999],x,y;
int main()
{
    f=fopen("taxe2.in","r");
    g=fopen("taxe2.out","w");
    fscanf(f,"%hd%hd",&s,&n);
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
           {fscanf(f,"%hd",&a[j]);

    }
    for(i=1;i<=n;i++)
    {
        c[0]=c[n+1]=-1;
        c
  • =c[n+1]=-1;
            }
    coada[inceput].ls=coada[inceput].ld=1;
    coada[inceput].d=a[j];
    c[1][1]=a[1][1];
     while(inceput<=sfarsit)
     {
         x=coada[inceput];
         inceput++;
         for(k=0;k<4;k++)
         {
             if(c[x.ls+x1[k]][x.ld+y1[k]]==0)
             {
                 c[x.ls+x1[k]][x.ld+y1[k]]=c[x.ls][x.ld]+a[x.ls+x1[k]][x.ld+y1[k]];
                 y.ls=x.ls+x1[k];
                 y.ld=x.ld+y1[k];
                 sfarsit++;
                 coada[sfarsit]=y;
            }
            else
                if(c[x.ls][x.ld]+a[x.ls+x1[k]][x.ld+y1[k]]<c[x.ls+x1[k]][x.ld+y1[k]])
            {
                c[x.ls+x1[k]][x.ld+y1[k]]=c[x.ls][x.ld]+a[x.ls+x1[k]][x.ld+y1[k]];
                 y.ls=x.ls+x1[k];
                 y.ld=x.ld+y1[k];
                 sfarsit++;
                 coada[sfarsit]=y;
            }
         }
     }
        if(s-c[n][n]>=0)
            fprintf(g,"%hd",s-c[n][n]);
        else
            fprintf(g,"-1");
}
de ce i-au pe testu 7,9,10 killsiegv 11?
25  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 024 Sume : Februarie 15, 2014, 17:08:37
cum as putea afla numerele dupa ce aflu numarul de numere din fisierul de iesite?
Pagini: [1] 2
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines