Andreigl
-
Posts
1958 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Calendar
Store
Downloads
Posts posted by Andreigl
-
-
Link: https://www.pbinfo.ro/?pagina=probleme&id=1452
#include <iostream> int main() { int Array[1505], N, P; std::cin >> N >> P; for (int i=1; i<=N; i++) std::cin >> Array[i]; for (int i=1; i<=N; i++) { if (i == P) Array[i] = -1; } for (int i=1; i<=N; i++) if (Array[i] != -1) std::cout << Array[i] << " "; }
0 -
Nu știu ce-i Mathlab, dar îți las rezolvarea pentru a 2-a problemă mai jos, poți lejer s-o traduci în ce vrei tu:
Legat de prima problemă, n-ai un exemplu de cod să-mi dai? Presupun că va fi un număr de 13 cifre, fiecare cifră separată printr-o liniuță, nu? Dacă te descurci să o traduci din C++, ți-o pot face și pe aceasta
#include <iostream> #include <algorithm> // #include <stdio.h> void bubbleSort(float Perimetre[], int Elemente) { for(int i=0; i<Elemente; i++) for(int j=i; j<Elemente; j++) if (Perimetre[i] > Perimetre[j]) { float aux = Perimetre[i]; Perimetre[i] = Perimetre[j]; Perimetre[j] = aux; } } int main() { /* Se citesc de la tastatura diametrele a N cercuri Deci noi trebuie sa citim prima data acel N numar */ int N; std::cin >> N; /* Vrem sa citim cele N diametre Stim ca diametrul unui cerc este egal cu 2r Deci d = 2r => r = d/2 */ float Perimetre[50]; // Consideram ca N va fi mai mic decat 51, aici stocam cele N perimetre ce ni le cere problema float Diametru, Raza, pi = 3.14; for (int i = 0; i < N; i++) { // Aflam raza cercului std::cin >> Diametru; Raza = Diametru / 2; /* Calculam: Aria Cercului: pi * r^2 Perimetrul Cercului: 2 * pi * r si le afisam in ordinea aceasta */ std::cout << i + 1 << ". " << pi * (Raza * Raza) << " " << 2 * pi * Raza << std::endl; /* Alternativa pentru afisare folosind libraria stdio.h printf("%d. %0.2f %0.2f", i + 1, pi * (Raza * Raza), 2 * pi * Raza); */ Perimetre[i] = 2 * pi * Raza; } /* Acum ordonam vectorul cu perimetrele in ordine crescatoare Aici avem mai multe alternative Ori folosim functia sort din libraria algorithm, ori ne facem noi propriul algoritm de sortare */ std::sort(Perimetre, Perimetre + N); // Metoda 1 bubbleSort(Perimetre, N); // Metoda 2 // Afisam perimetrele for (int i = 0; i < N; i++) std::cout << Perimetre[i] << " "; }
0 -
Link: https://www.pbinfo.ro/?pagina=probleme&id=490
#include <iostream> int main() { int N, Numar, Index = 1, IndexMax, IndexMin, Max = 0, Min = 39e+69; int Array[1001], size = 0, IndexStart, IndexStop; std::cin >> N; for (int i=0; i<N; i++) { std::cin >> Numar; Array[size++] = Numar; if (Numar > Max) { Max = Numar; IndexMax = Index; } if (Min > Numar) { Min = Numar; IndexMin = Index; } Index++; } Index = 1; if (IndexMax > IndexMin) { IndexStart = IndexMin; IndexStop = IndexMax; } else { IndexStart = IndexMax; IndexStop = IndexMin; } for (int i=0; i<size; i++) { if (Index == IndexStart) { while (Index != (IndexStop+1)) { std::cout << Array[i] << " "; Index++; i++; } } Index++; } }
0 -
Link: https://www.pbinfo.ro/?pagina=probleme&id=487
#include <iostream> int main() { int N, size = 0, Numere = 0; float Array[205], Ma, Numar, Suma = 0; std::cin >> N; for (int i=0; i<N; i++) { std::cin >> Numar; Array[size++] = Numar; Suma += Numar; } Ma = (float)Suma / N; for (int i=0; i<size; i++) { if ((float)Array[i] > (float)Ma) Numere++; } std::cout << Numere; }
0 -
Link: https://www.pbinfo.ro/?pagina=probleme&id=958
#include <iostream> using namespace std; int main() { int n, m, P = 0, nr, putere, prefix, sufix; long long C = 1, cif; cin >> n; m = n; cif = 1; nr = 9; while (n) { if (nr < n) { C += nr * cif; n -= nr; } else { C += n * cif; n = 0; } cif++; nr *= 10; } n = prefix = m; sufix = 0; putere = 1; while(n / 100) { sufix = sufix + (n % 10) * putere; n /= 10; prefix = n / 10; putere *= 10; if (prefix * sufix > P) P = prefix * sufix; } cout << P << ' ' << C; }
0 -
Link: https://www.pbinfo.ro/?pagina=probleme&id=986
#include <iostream> int main() { int N, Elemente = 0; double Array[205], a, b; std::cin >> N; for(int i=0; i<N; i++) std::cin >> Array[i]; if (Array[0] > Array[N-1]) { a = Array[N-1]; b = Array[0]; } else { a = Array[0]; b = Array[N-1]; } for(int i=0; i<N; i++) { if (Array[i] >= a && Array[i] <= b) Elemente++; } std::cout << N - Elemente; }
0 -
Link: https://www.pbinfo.ro/?pagina=probleme&id=2858
#include <iostream> int main() { int N, Suma_1 = 0, Suma_2 = 0, Suma_3 = 0, Divizibile = 0; int Array[205]; std::cin >> N; for (int i=0; i<N; i++) std::cin >> Array[i]; for(int i=N-1, j=1, k=1; i>=0; i--, j++, k++) { std::cout << Array[i] << " "; if (Array[i] % 2 == 0) Suma_1 += Array[i]; if (j % 2 == 0) Suma_2 += Array[j-1]; if (Array[i] % 10 == 0) Divizibile++; if (k % 2 != 0 and Array[k-1] % 3 == 0) Suma_3 += Array[k-1]; } std::cout << "\n" << Suma_1 << "\n" << Suma_2 << "\n" << Divizibile << "\n" << Suma_3; }
0 -
Link: https://www.pbinfo.ro/?pagina=probleme&id=499
#include <iostream> int main() { int N, Suma = 0, Suma_2 = 0, Elemente = 0; long long int Array[205], aux, aux_2; std::cin >> N; for (int i=0; i<N; i++) std::cin >> Array[i]; for (int i=0; i<N; i++) { aux = Array[i]; while (aux != 0) { Suma += aux % 10; aux /= 10; } for (int j=i+1; j<N; j++) { aux_2 = Array[j]; while (aux_2 != 0) { Suma_2 += aux_2 % 10; aux_2 /= 10; } if (Suma == Suma_2) Elemente++; Suma_2 = 0; } Suma = 0; } std::cout << Elemente; }
0 -
Link: https://www.pbinfo.ro/?pagina=probleme&id=493
#include <iostream> int sum_cif(long long int Numar) { int Suma = 0; while (Numar != 0) { Suma += Numar % 10; Numar /= 10; } return Suma; } int main() { int N, Suma_Cifre; long long int Array[205], arr[205]; std::cin >> N; for (int i=0; i<N; i++) std::cin >> Array[i]; for (int i=0; i<N; i++) { Suma_Cifre = sum_cif(Array[i]); arr[i] = Array[i] % Suma_Cifre; std::cout << arr[i] << " "; } return 0; }
0 -
Link: https://www.pbinfo.ro/?pagina=probleme&id=1860
#include <iostream> #include <fstream> int main() { std::ifstream Read("blackfriday.in"); std::ofstream Write("blackfriday.out"); int N, Index; double Pret_Real[15], Pret_Ieftinire[15], Procent, Max = 0; Read >> N; for (int i=0; i<N; i++) Read >> Pret_Real[i]; for (int i=0; i<N; i++) Read >> Pret_Ieftinire[i]; for (int i=0; i<N; i++) { Procent = (float)100 - ((100 * Pret_Ieftinire[i]) / Pret_Real[i]); if (Procent > Max) { Max = Procent; Index = i+1; } } Write << Index; Read.close(); Write.close(); return 0; }
0 -
Link: https://www.pbinfo.ro/?pagina=probleme&id=498
#include <iostream> bool CMMDC(int Numar_1, int Numar_2) { int Divizori_1[205], Divizori_2[205], size_1 = 0, size_2 = 0; for (int i=1; i<=Numar_1; i++) { if (Numar_1 % i == 0) Divizori_1[size_1++] = i; } for (int i=1; i<=Numar_2; i++) { if (Numar_2 % i == 0) Divizori_2[size_2++] = i; } for (int i=0; i<size_1; i++) { for (int j=0; j<size_2; j++) { if (Divizori_2[j] != 1 and Divizori_2[j] == Divizori_1[i]) return false; } } return true; } int main() { int N, Array[205], Elemente = 0; std::cin >> N; for (int i=0; i<N; i++) std::cin >> Array[i]; for (int i=0; i<N; i++) { for (int j=i+1; j<N; j++) if (CMMDC(Array[i], Array[j])) Elemente++; } std::cout << Elemente; return 0; }
0 -
Link: https://www.pbinfo.ro/?pagina=probleme&id=494
#include <iostream> int main() { int N, Array[205], Vector[205], Suma = 0; std::cin >> N; for (int i=0; i<N; i++) { std::cin >> Array[i]; Suma += Array[i]; } for (int i=0; i<N; i++) { Vector[i] = (Suma - Array[i]); std::cout << Vector[i] << " "; } return 0; }
0 -
Link https://www.pbinfo.ro/?pagina=probleme&id=495
bool Prim(long long int Numar) { if (Numar < 2 or Numar % 2 == 0) return false; if (Numar == 2) return true; for (int i=3; (i*i)<=Numar; i+=2) { if (Numar % i == 0) return false; } return true; } int main() { int N, size = 0; long long int Array[205], Numar; std::cin >> N; for (int i=0; i<N; i++) { std::cin >> Numar; if (Prim(Numar)) Array[size++] = Numar; } for (int i=(size-1); i>=0; i--) std::cout << Array[i] << " "; return 0; }
0 -
Un număr prim este acel număr care se împarte doar la 2 numere și anume 1 și el însuși.
Cea mai eficientă metodă pentru a verifica dacă un număr este prim sau nu este următoarea:
bool isPrim(long long int Numar) { if (Numar == 2) return true; if (Numar % 2 == 0 or Numar < 2) return false; for (int contor = 3; contor * contor <= Numar; contor+=2) if (Numar % contor == 0) return false; return true; }
Cum este gândită? Ei bine cum am zis, un număr prim are doar 2 divizori.
De reținut este că un număr par nu este niciodată un număr prim. Singurul număr par care este prim în același timp este 2. De ce? Ei bine, are doar 2 divizori.
Deci cum am scăpat de o gamă largă de numere, mai avem decât să facem un începând de la 3, până la radicalul acestuia. Contorul îl însuma din 2 în 2.
De ce începem de la 3 și nu de la 2? Pentru că nu vrem să împărțim numărul nostru la numere pare. Dacă observați, în for vor fi doar deîmpărțitori impari.
Exemplu cum să apelați funcția de mai sus:
#include <iostream> bool isPrim(long long int Numar) { if (Numar == 2) return true; if (Numar % 2 == 0 or Numar < 2) return false; for (int contor = 3; contor * contor <= Numar; contor += 2) if (Numar % contor == 0) return false; return true; } int main() { int input; std::cin >> input; if (isPrim(input)) std::cout << "Numarul citit este un numar prim"; else std::cout << "Numarul citit nu este un numar prim"; }
0 -
Link https://www.pbinfo.ro/?pagina=probleme&id=496
bool Prim(int Numar_1, int Numar_2) { int Divizori_1[205], Divizori_2[205], size_1, size_2; size_1 = size_2 = 0; for (int i=2; i<=Numar_1; i++) { if (Numar_1 % i == 0) Divizori_1[size_1++] = i; } for (int i=2; i<=Numar_2; i++) { if (Numar_2 % i == 0) Divizori_2[size_2++] = i; } for (int i=0; i<size_1; i++) { for (int j=0; j<size_2; j++) if (Divizori_2[j] == Divizori_1[i]) return false; } return true; } int main() { int N, Array[205], Elemente = 0; std::cin >> N; for (int i=0; i<N; i++) std::cin >> Array[i]; for (int i=0; i<N; i++) { if (Prim(Array[i], Array[N-1])) Elemente++; } std::cout << Elemente; return 0; }
0 -
Link https://www.pbinfo.ro/?pagina=probleme&id=161
int main() { int N, Array[205], Elemente = 0, Suma = 0; std::cin >> N; for (int i=0; i<N; i++) { std::cin >> Array[i]; if (Array[i] != 0) Elemente++; Suma += Array[i]; } Suma /= Elemente; for (int i=0; i<N; i++) { if (Array[i] == 0) Array[i] = Suma; std::cout << Array[i] << " "; } }
0 -
Link https://www.pbinfo.ro/?pagina=probleme&id=383
Solutia autorului problemei:
int main(){ int n,k,v[200]; cin >> k >> n; for(int i = 0 ; i < n ; ++ i) cin >> v[i]; for(int i = 0 ; i < n ; ++ i) { int x = v[i] / k * k; int y = x + k; if(v[i] - x <= y - v[i]) v[i] = x; else v[i] = y; } for(int i = n - 1 ; i >= 0 ; -- i) cout << v[i] << " "; return 0; }
0 -
Link https://www.pbinfo.ro/?pagina=probleme&id=1893
Problema cere să se afișeze un număr de 9 cifre diferit de cele citite de la tastatură.
Se poate vedea exemplu din problemă:
4 123456789 987654321 112345567 200000001
orice număr de 9 cifre diferit de numerele de mai sus este declarat ca și un răspuns câștigător.
Răspunsul oficial arată în felul următor:
#include <iostream> #include <stdlib.h> #include <time.h> using namespace std; long a,b,c ; int main() { srand (time(NULL)); a = rand()%21623+10000; b = rand()%21623+10000; c = a*b ; cout << c ; return 0; }
Însă eu n-am stat să-mi bat capul cu așa ceva, așa că soluția mea arată în felul următor:
int main() { printf("112355372"); }
0 -
Link https://www.pbinfo.ro/?pagina=probleme&id=551
int main() { int N, Elevi, Talent = 0; long long int Numar, Max = 0; bool Clasa = false; std::cin >> N >> Elevi; for (int i=0; i<N; i++) { Clasa = false; for (int i=0; i<Elevi; i++) { std::cin >> Numar; if (Numar > Max) { Max = Numar; Talent = 1; Clasa = true; } else { if (Clasa != true and Numar == Max) { Talent++; Clasa = true; } } } } std::cout << Max << " " << Talent; }
0 -
Link https://www.pbinfo.ro/?pagina=probleme&id=1883
int main() { int N; long long int Array[1005]; bool Found; std::cin >> N; for (int i=0; i<N; i++) std::cin >> Array[i]; for (int i=0; i<N; i++) { Found = false; for (int j=i; j<N; j++) { if (Array[j] > Array[i]) { Found = true; std::cout << Array[j] << " "; break; } } if (Found == false) std::cout << -1 << " "; } }
0 -
Link https://www.pbinfo.ro/?pagina=probleme&id=497
int main() { int N, X = 0, Aparitie = 0; long long int Numar[100005], Majoritar; std::cin >> N; for (int i=0; i<N; i++) { std::cin >> Numar[i]; if (X == 0) { X = 1; Majoritar = Numar[i]; } if (X != 0) { if (Majoritar != Numar[i]) X--; else X++; } } for (int i=0; i<N; i++) { if (Numar[i] == Majoritar) Aparitie++; } if (Aparitie > N/2) std::cout << "DA " << Majoritar; else std::cout << "NU"; }
0 -
Link https://www.pbinfo.ro/?pagina=probleme&id=278
int main() { int N, aux, Vector_1[10005], Vector_2[10005], Elemente = 0; std::cin >> N; aux = N; for (int i=0; i<N; i++) std::cin >> Vector_1[i]; std::cin >> N; for (int i=0; i<N; i++) std::cin >> Vector_2[i]; std::sort(Vector_1, Vector_1 + aux, std::greater <int>()); std::sort(Vector_2, Vector_2 + N, std::greater <int>()); for (int i=0 ;; i++) { if (Vector_1[i] > Vector_2[0]) Elemente++; else break; } std::cout << Elemente; }
0 -
Link https://www.pbinfo.ro/?pagina=probleme&id=82
int main() { std::ifstream Read ("minmax.in"); std::ofstream Write ("minmax.out"); int N, Vector[1005], Max = 0, Min = 39e+69; Read >> N; for (int i=0; i<N; i++) { Read >> Vector[i]; if (Vector[i] > Max) Max = Vector[i]; if (Vector[i] < Min) Min = Vector[i]; } Write << Min << " " << Max; Read.close(); Write.close(); }
0 -
Link https://www.pbinfo.ro/?pagina=probleme&id=98
int main() { std::ifstream Read ("maxim4.in"); std::ofstream Write ("maxim4.out"); int N, Vector[105], Max = 0, Min = 39e+69, Aparitie = 0; Read >> N; for (int i=0; i<N; i++) { Read >> Vector[i]; if (Vector[i] > Max) { Max = Vector[i]; Aparitie = 0; } if (Vector[i] == Max) Aparitie++; } Write << Max << " " << Aparitie; Read.close(); Write.close(); }
0
[C++] pbInfo
in Creations
Posted
Link: https://www.pbinfo.ro/?pagina=probleme&id=1453