infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Stefan Istrate din Februarie 05, 2010, 20:30:44



Titlul: 967 Char
Scris de: Stefan Istrate din Februarie 05, 2010, 20:30:44
Aici puteti discuta despre problema Char (http://infoarena.ro/problema/char).


Titlul: Răspuns: 967 Char
Scris de: Spatariu Mihai-Constantin din Februarie 13, 2010, 20:40:23
Deci exercitiul asta e prea ciudat. Daca afisezi 3 iei 50pct; daca afisezi 2 iei 50 pct(pe aceleasi teste) :readthis:


Titlul: Răspuns: 967 Char
Scris de: Simionescu Andrei din Februarie 15, 2010, 01:10:17
Deci e bătaie de joc. Sursa mea este okay şi totuşi ia seg fault de la input prost (am verificat. de multe ori!)
Ce îmi răspunde uploaderul cu nonşalanţă?

Citat
Buna.

Primesti segmentation fault cand faci stack overflow sau ceva de genul asta, cand intervine o eroare majora care opreste programul automat. Ai putea sa incerci sa faci debug pe testele oficiale sau sa te uiti pe solutia oficiala (cauta pe net).

Din pacate nu prea am timp sa ma uit pe cod acum ...

Deci primesc segmentation fault când fac stack overflow şi când intervine o eroare majoră care opreşte programul automat. Trecând peste explicaţia pueril-inexactă, răspunsul e ceva de genul te uzi pentru că plouă când eu întreb unde e gaura în acoperiş.

Way to go!  :thumbup:

---

Job: http://infoarena.ro/job_detail/396369 (http://infoarena.ro/job_detail/396369)


Titlul: Răspuns: 967 Char
Scris de: Andrei Grigorean din Februarie 15, 2010, 02:25:21
Deci e bătaie de joc. Sursa mea este okay şi totuşi ia seg fault de la input prost (am verificat. de multe ori!)
Ce îmi răspunde uploaderul cu nonşalanţă?

Citat
Buna.

Primesti segmentation fault cand faci stack overflow sau ceva de genul asta, cand intervine o eroare majora care opreste programul automat. Ai putea sa incerci sa faci debug pe testele oficiale sau sa te uiti pe solutia oficiala (cauta pe net).

Din pacate nu prea am timp sa ma uit pe cod acum ...

Deci primesc segmentation fault când fac stack overflow şi când intervine o eroare majoră care opreşte programul automat. Trecând peste explicaţia pueril-inexactă, răspunsul e ceva de genul te uzi pentru că plouă când eu întreb unde e gaura în acoperiş.

Way to go!  :thumbup:

---

Job: http://infoarena.ro/job_detail/396369 (http://infoarena.ro/job_detail/396369)

Bataie de joc e felul in care citesti tu datele de intrare!

Cod:
 int n, i, aux, j;
 char ch;

 // input
 scanf( "%d", &n );
 
 for( i = 1; i <= n; ++i )
    {
     scanf(" %c", &ch );
     aparitii[ch - 'a' + 1] += 1;
     text[i] = ch - 'a' + 1;
    }
 scanf( "%d", &aux );

Pana la urma raspunsul e ca nu esti destul de competent incat sa cunosti modul de apelare al functiei scanf().


Titlul: Răspuns: 967 Char
Scris de: Stefan Istrate din Februarie 15, 2010, 02:28:03
@myshu: Am rezolvat acum si am reevaluat.


Titlul: Răspuns: 967 Char
Scris de: Simionescu Andrei din Februarie 15, 2010, 12:36:43
Am rezolvat, în sfârşit. Este extrem de neplăcut să stai să încerci să-ţi dai seama unde este diferenţa între comportamentul compilatoarelor, când la unul dintre ele nu ai acces decât indirect şi sursa ta rulează fără probleme pe al tău.
Am citit ca string şi a mers.

Mulţumesc, Andrei, pentru cel mai competent răspuns. ( varianta ta nu mergea, dar diferenţa o făcea, într-adevăr, scanf-ul )


Titlul: Răspuns: 967 Char
Scris de: Andrei Grigorean din Februarie 15, 2010, 12:57:39
Si sursa asta (http://infoarena.ro/job_detail/396375) cum de ia WA, nu KBS? Folosesc sursa ta, cu citirea modificata ca mai sus.

In primul rand, este imposibil pentru cineva sa iti spuna de ce iei KBS fara sa se uite in sursa ta - lucru pe care nu e nimeni obligat sa-l faca, nici eu, nici ceilalti membri ai echipei infoarena si nici cel care a adaugat problema. Daca arunci o privire aici (http://infoarena.ro/documentatie/evaluator), poti vedea ca un copil de clasa a VIII-a ti-a raspuns aproximativ acceptabil.
In momentul in care tu nu cunosti notiuni elementare de limbaj, vii pe forum si ai o atitudine deplasata, de parca noi suntem de vina ca pe gcc nu merge codul tau care nu respecta standardele.


Titlul: Răspuns: 967 Char
Scris de: Alexandru-Iancu Caragicu din Martie 18, 2012, 13:44:24
In solutia oficiala scrie ca pentru fiecare buton apasat consideri intervale continue (stanga si dreapta), dar din problema se intelege ca la apasare butonul apasat nu se transforma; e o gaura in interval.
Deci un contraexemplu ar fi sirul aa cu puterea 1 pentru a.
aa
11
2 intervale [1;2] si [1;2] => solutia ar fi 1.
dar solutia e 2, poti apasa ambele butoane (fiecare il transforma pe celalalt).
Deci e solutia oficiala gresita sau problema incomplet formulata? In orice caz, nu prea e ok, ca doar e problema de ONI.


Titlul: Răspuns: 967 Char
Scris de: Stefan Creasta din Noiembrie 01, 2015, 18:30:41
Ma poate ajuta si pe mine cineva; am incarcat problema si iau 60 de pct si nu stiu ce am gresit :

#include <cstdio>
#include <algorithm>
using namespace std;
char v[10005],a[200];
int put[10000],st[10000],dr[10000],p[200],aux[10005];

int main()
{
    int n,i,j=1,m,s,q,pmax=0,nr=0;
    freopen("char.in","r",stdin);
    freopen("char.out","w",stdout);
    scanf("%d\n",&n);
    for(i=1;i<=n;++i){
        scanf("%c",&v);
        aux=v;
    }
    scanf("%d",&m);
    for(i=1;i<=m;++i){
        scanf("%d",&put);
        if(put>pmax){
            pmax=put;
        }
    }
    sort(aux+1,aux+n+1);
    i=1;
    while(i<=n)
    {
        a[j]=aux;
        p[aux]=j;
        int count=0;
        while(i<=n&&aux==aux[i+1]){
            ++i;++count;
        }
        if(put[p[aux]]==pmax)
            nr+=count+1;
        ++i;++j;
    }
    printf("%d\n",nr);
    for(i=1;i<=n;++i)
    {
        st=i-put[p[v]];
        if(st<1)
            st=1;
        dr=i+put[p[v]];
        if(dr>n)
            dr=n;
    }
    int d=dr[1];nr=1;
    for(i=1;i<=n;++i)
        if(d<st)
        {
            d=dr;
            ++nr;
        }
    printf("%d",nr);
    return 0;
}


Titlul: Răspuns: 967 Char
Scris de: Mihai Calancea din Noiembrie 01, 2015, 22:22:24
Salut,

S-ar putea să fie fiindcă declari unii vectori fix de 10.000 și apoi accesezi al 10.000-lea element. Văd că la unii ai pus 10.005. Ca să nu riști să fii neatent pe viitor, fă-ți o constantă MAXN = 10.005.


Titlul: Răspuns: 967 Char
Scris de: Stefan Creasta din Noiembrie 07, 2015, 10:59:27
Salut,

Multumesc pentru sfat. Am facut modificarea si nu s-a intamplat nimic.

Stefan