Afişează mesaje
|
|
Pagini: [1]
|
|
3
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1093 Palalila2
|
: Martie 08, 2011, 19:52:58
|
pana la urma am facut o varianta a mea care merge pentru exemplul dat la problema:nostressATfmi ,dar cand o postez pe infoarena imi afiseaza incorect la toate testele...imi puteti spune ce gresala am facut in cod sau macar un sir mai mare pe care pot sa testez raspunsul. #include <stdio.h> #include <string.h>
int main() { int j=2,i=1,nr=1; char s[500000]; FILE *poz,*pozout; poz=fopen("palalila2.in","r"); fgets(s,sizeof(s),poz); while (s[i]!='\0') { if (s[i-1]>s[j]) { if (s[i]>s[j]) { i=j+1; j=i+1; nr+=2; } else { ++j; if (j==strlen(s)) { ++i; j=i+1; } } } else { ++i; j=i+1; } } fclose(poz); pozout=fopen("palalila2.out","w"); fprintf (pozout,"%d",nr); fclose(pozout); return 0; }
|
|
|
|
|
5
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1093 Palalila2
|
: Februarie 27, 2011, 20:08:12
|
n-am inteles ,am pus un cod dar imi da 36 si ar trebui sa-mi dea 7 #include <stdio.h>
int main() { char t[13]="nostressATfmi"; int i=0,j=0,N=13,sol=0; while (i+1<N) {
while ((t[j] >= t[j+1]) && (j + 1 < N)) { ++j; ++sol;
} j=0; while ((t[j] <= t[j + 1]) && (j + 1 < N)) { ++j; ++sol; } j=0; ++i; } printf("%d",sol); getch(); return 0; }
si pe langa asta mai trebuie ca acest cod sa se termine in maxim 0,5 sec cu sirul de 640 kb...cum fac asta?
|
|
|
|
|
7
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1093 Palalila2
|
: Februarie 22, 2011, 10:01:25
|
1. Se parcurge sirul pana cand V[ i ] >= V[ i + 1 ] sau se termina. 2. Se parcurge sirul pana cand V[ i ] <= V[ i + 1 ] sau se termina. 3. Se revine la 1.
Solutia se incrementeaza la pasii 1 si 2. Cand se termina sirul, se afiseaza solutia.
n-am inteles solutia lui Spatarel parcurgem sirul intr-un while mare care contine alte 2 while-uri (adica cele de la punctul 1 si 2,cu conditiile impuse) ?
|
|
|
|
|
13
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1093 Palalila2
|
: Februarie 14, 2011, 13:13:02
|
imi puteti spune si mie ce trebuie sa pun aici pentru a nu mai primi warning-ul asta? Compilare: user.c:43:2: warning: no newline at end of file
si asta e codul sursa: #include <stdio.h> #include <string.h> #include <ctype.h>
int main() { FILE *poz,*afisare; char S[100]; int i=1,j=2,nr=1,max=0; poz=fopen("palalila2.in","r"); if (poz==NULL) printf("eroare"); else { fgets(S,sizeof(S),poz); while (S[i]!='\0') { if ((S[i-1]<S[i]) && (S[i]>S[j])) { nr+=2; i+=2; j+=2; } else { ++j; } if (j==strlen(S)) { if (nr>max) max=nr; ++i; j=i+1; } } } afisare=fopen("palalila2.out","w"); fprintf(afisare,"%d",max); fputs("\n\n",afisare); return 0; }
|
|
|
|
|
14
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / [C]intrebari pointeri
|
: Decembrie 18, 2010, 18:06:09
|
Buna ziua! am sa postez aici nelamuririle mele legate de pointeri ... 1)pana acum stiu(am vazut  ) cum pot sa aloc memorie pentru un sir de numere intregi...dar daca vreau sa citesc de la tastatura un sir de caractere(un text),cum as putea face?(adica sa il citesc pe tot odata,nu litere cu litera ,cum ar fii la vectori) eu m-am gandit la asa ceva : #include <stdio.h> #include <stdlib.h> #include <string.h>
int main() { char s[10],*p; int i; fgets(s,10,stdin); printf("%c",s[4]); p=(char*)malloc(sizeof(char)); for (i=strlen(s);i<10;++i) { p=(char*)realloc(p,(i+1)*sizeof(char)); free(p+i); }
}
|
|
|
|
|