Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / FMI No Stress 2017 / Răspuns: Blaturi : Martie 12, 2017, 11:46:46
Daca blatul k este preparat de primul atunci blaturile 1, 2, 3,...,k-1 sunt obligatoriu preparate tot de el?
2  infoarena - concursuri, probleme, evaluator, articole / AGM 2016 / Răspuns: Arcas : Martie 26, 2016, 11:28:24
Desenul trebuie rotiti la dreapta cu 90grade sa respecte enuntul.
3  infoarena - concursuri, probleme, evaluator, articole / AGM 2016 / Răspuns: Arcas : Martie 26, 2016, 10:05:13
Tintele nu ar trebui sa fie paralele cu axa Ox?
Pe desen sunt paralele cu Oy.
4  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1011 Egipt : Martie 11, 2016, 16:16:28
Nu mai este nevoie! Yahoo! Banana
5  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1011 Egipt : Martie 11, 2016, 14:37:43
Isi da seama cineva ce e gresit la sursa:

#include <cstdio>
 
int mutari=0,n,i,a[100005],n1=0,n2=0,n3=0,i1,i2,i3,aux;
struct schimbare
{
    int i,j;
};
schimbare mut[100005];
 
int main()
{
    freopen("egipt.in","r",stdin);
    freopen("egipt.out","w",stdout);
    scanf("%d",&n);
    for (i=1; i<=n; i++)
    {
        scanf("%d",&a);
        if (a==1) n1++; else if (a==2) n2++; else n3++;
    }
    for (i1=1; i1<=n1; i1++)
        for (i2=n1+1; i2<=n1+n2; i2++)
        if (a[i1]!=1 && a[i2]==1)
    {
        mutari++;
        mut[mutari].i=i1;
        mut[mutari].j=i2;
        aux=a[i1];
        a[i1]=1;
        a[i2]=aux;
    }
 
    for (i1=1; i1<=n1; i1++)
        for (i3=n1+n2+1; i3<=n1+n2+n3; i3++)
        if (a[i1]!=1 && a[i3]==1)
    {
        mutari++;
        mut[mutari].i=i1;
        mut[mutari].j=i3;
        aux=a[i1];
        a[i1]=1;
        a[i3]=aux;
    }
 
    for (i2=n1+1; i2<=n1+n2; i2++)
        for (i3=n1+n2+1; i3<=n1+n2+n3; i3++)
        if (a[i2]!=2 && a[i3]==2)
    {
        mutari++;
        mut[mutari].i=i2;
        mut[mutari].j=i3;
        aux=a[i2];
        a[i2]=2;
        a[i3]=aux;
    }
    printf("%d\n",mutari);
    for (i=1; i<=mutari; i++)
        printf("%d %d\n",mut.i,mut.j);
    return 0;
}
6  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 114 Muzeu : Martie 07, 2016, 15:00:45
Solutia de 100p folosind algoritmul lui Lee:

#include <cstdio>

int i,j,n,sc,a[255][255];
int dx[]={0, 1, 0, -1};
int dy[]={1, 0, -1, 0};
struct coada
{
    int l,c;
};
coada c[66000];

void citire()
{
    int i,j;
    char s[255];
    freopen("muzeu.in","r",stdin);
    freopen("muzeu.out","w",stdout);
    scanf("%d",&n);
    sc=0;
    for (i=1; i<=n; i++)
    {
        scanf("%s",&s);
        for (j=0; j<=n-1; j++)
            if (s[j]=='#') a[j+1]=-1;
                else if (s[j]=='P')
                {
                    a[j+1]=1;
                    sc++;
                    c[sc].l=i;
                    c[sc].c=j+1;
                }
    }
}

void bordare()
{
    int i;
    for (i=0; i<=n+1; i++)
    {
        a
  • =-1;
        a[n+1]=-1;
        a[0]=-1;
        a[n+1]=-1;
    }
}

void Lee()
{
    int i,ic=1;
    coada t,cx;
    while (ic<=sc)
    {
        t=c[ic];
        ic++;
        for (i=0; i<=3; i++)
        {
            cx.l=t.l+dx;
            cx.c=t.c+dy;
            if (a[cx.l][cx.c]==0)
            {
                sc++;
                c[sc].l=cx.l;
                c[sc].c=cx.c;
                a[cx.l][cx.c]=a[t.l][t.c]+1;
            }
        }
    }
}

void afisare()
{
    int i,j;
   for (i=1; i<=n; i++)
    {
        for (j=1; j<=n; j++)
            printf("%d ",a[j]-1);
        printf("\n");
    }
}

int main()
{
    citire();
    bordare();
    Lee();
    afisare();
    return 0;
}
7  infoarena - concursuri, probleme, evaluator, articole / Arhiva Infoarena Monthly / Răspuns: 003 Bursa : Martie 03, 2016, 12:53:01
Isi da cineva seama ce e gresit la:

#include <cstdio>

using namespace std;
int n,i,v[500005];
long long s,sinit,actiuni;

int main()
{
    freopen("bursa.in","r",stdin);
    freopen("bursa.out","w",stdout);
    scanf("%d%lld",&n,&s);
    for (i=1; i<=n; i++)
        scanf("%d",&v);
    sinit=s;
    v[0]=2000000000;
    v[n+1]=-2000000000;
    for (i=1; i<=n; i++)
        if (v[i-1]<v && v>v[i+1])
        {
            s=s+actiuni*v;
            actiuni=0;
        }
        else if (v[i-1]>v && v<v[i+1])
        {
            actiuni=actiuni+s/v;
            s=s%v;
        }
    printf("%lld\n",s-sinit);
    return 0;
}
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines