Afişează mesaje
|
Pagini: [1]
|
2
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 377 Next
|
: Aprilie 18, 2007, 14:00:13
|
Poate ai omis asta: # 1 ≤ N < 10^1.000.000
Nu, nu am omis asta. Chiar am luat-o in considerare. Stiu ca nu ar trebui sa iau 100 de pct dar nici chiar 0. Cel putin un test este cu numere mici. [Later Edit] Am incercat sa rezolv problema si cu metoda care este publicata pe infoarena, la fel, pe PCul meu merge bine, si pe infoarena imi da 7 WA si 3 Signal 11 [Even Later Edit] Nevermind, nu am citit eu bine. Trebuia sa lucram cu operatii pe nr mari.
|
|
|
5
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 046 Text
|
: Martie 02, 2007, 23:36:23
|
Imi spune si mie cineva cum pot citi caracter cu caracter, dar sa-mi citeasca si spatiile? Am incercat ceva de genul: [...] FILE *in=fopen...; // restul e clar char *words[10000]; while (fscanf(in,"%s",&words)!=EOF){ [...] }
Dar asa nu-mi citeste spatiile. Am incercat si cu fgets, dar asa nu mai e caracter cu caracter... Ma poate ajuta cineva? Multumesc!
|
|
|
6
|
Comunitate - feedback, proiecte si distractie / Feedback infoarena / 001 CMMDC Wrong Answer
|
: Decembrie 11, 2006, 22:45:26
|
Am trimis raspunsul la problema CMMDC, care apropo merge perfect acasa, si imi zice wrong answer: 0 pct. Iata ce am scris: #include <stdlib.h> #include <stdio.h> #include <math.h> int main(void) { int a,b,x; FILE *in,*out; in=fopen("cmmdc.in", "rt"); out=fopen("cmmdc.out", "w+"); fscanf(in,"%d",&a); fscanf(in,"%d",&b); while (a!=b) { x=abs(a-b); b=a; a=x; } if (a==1) { a=0; } // daca sterg lini asta primesc 50 pct if (a!=1) { fprintf(out,"%d",a); } return 0; }
iar daca scriu asa primesc 50 pct: #include <stdlib.h> #include <stdio.h> #include <math.h> int main(void) { int a,b,x; FILE *in,*out; in=fopen("cmmdc.in", "rt"); out=fopen("cmmdc.out", "w+"); fscanf(in,"%d",&a); fscanf(in,"%d",&b); while (a!=b) { x=abs(a-b); b=a; a=x; } // if (a==1) { a=0; } if (a!=1) { fprintf(out,"%d",a); } return 0; }
va rog sa ma ajutati (job #809)
|
|
|
7
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 001 CMMDC
|
: Decembrie 11, 2006, 22:38:09
|
Cred ca ori sunt foarte obosit in seara asta ori evaluatorul are probleme serioase... Cam asa am facut programul... #include <fstream> #include <iostream> #include <cmath> using namespace std; int main(void) { long a,b,m,n,r; fstream fin("cmmdc.in", ios::in); fstream fout("cmmdc.out", ios::out); fin >> a; fin >> b; a = labs (a); b = labs (b); m = a; n = b; do { r = m % n; m = n; n = r; } while (r); if (m == 1) { fout << 0; fout.close(); fin.close(); return 0; } else /*if (m!=1) */ { fout << m; fout.close(); fin.close(); return 0; } }
Programul primeste 0 puncte insa chestia interesanta e ca daca acel bloc if-else il scot si il las pur si simplu sa-l scrie pe m in fisier primeste 50 de puncte, si mai mult decat atat daca verific doar situatia cand m==1 si scriu 0 in fisier primeste tot 50 de puncte insa de la testele la care a esuat anterior culmea e ca daca le las pe amandoua if m == 0 then... else... nu merge. Spuneti-mi si mie ce fac gresit? Exista o posibilitate mult mai simpla... Eu l-am facut dar imi da doar 50 de puncte... #include <stdlib.h> #include <stdio.h> #include <math.h> int main(void) { int a,b,x; FILE *in,*out; in=fopen("cmmdc.in", "rt"); out=fopen("cmmdc.out", "w+"); fscanf(in,"%d",&a); fscanf(in,"%d",&b); while (a!=b) { x=abs(a-b); b=a; a=x; } //if (a==1) a=0; if (a!=1) fprintf(out,"%d",a); return 0; }
|
|
|
|