Jump to content

Andreigl

VIP
  • Posts

    1958
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Andreigl

  1. Link: https://www.pbinfo.ro/?pagina=probleme&amp;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; }
  2. Link: https://www.pbinfo.ro/?pagina=probleme&amp;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; }
  3. Link: https://www.pbinfo.ro/?pagina=probleme&amp;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; }
  4. Link: https://www.pbinfo.ro/?pagina=probleme&amp;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; }
  5. Link: https://www.pbinfo.ro/?pagina=probleme&amp;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; }
  6. Link: https://www.pbinfo.ro/?pagina=probleme&amp;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; }
  7. 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; }
  8. 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"; }
  9. 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; }
  10. 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] << " "; } }
  11. 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; }
  12. 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"); }
  13. 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; }
  14. 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 << " "; } }
  15. 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"; }
  16. 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; }
  17. 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(); }
  18. 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(); }
  19. Link https://www.pbinfo.ro/?pagina=probleme&id=99 int main() { std::ifstream Read ("nraparitii.in"); std::ofstream Write ("nraparitii.out"); int N, Vector[105], Aparitie = 0; Read >> N; for (int i=0; i<N; i++) Read >> Vector[i]; for (int i=0; i<N; i++) { if (Vector[i] == Vector[N-1]) Aparitie++; } Write << Aparitie; Read.close(); Write.close(); }
  20. Link https://www.pbinfo.ro/?pagina=probleme&id=100 bool Prime(long long int Numar) { if (Numar == 2) return true; if (Numar < 2 or Numar % 2 == 0) return false; for (int i=3; (i*i)<=Numar; i+=2) if (Numar % i == 0) return false; return true; } int main() { std::ifstream Read ("nrapprime.in"); std::ofstream Write ("nrapprime.out"); int N, NrPrime = 0; long long int Vector[105]; Read >> N; for (int i=0; i<N; i++) { Read >> Vector[i]; if (Prime(Vector[i])) NrPrime++; } Write << NrPrime; Read.close(); Write.close(); }
  21. Link https://www.pbinfo.ro/?pagina=probleme&id=132 bool PatratPerfect(int Numar) { if ((int)sqrt(Numar) == (float)sqrt(Numar)) return true; else return false; } int main() { std::ifstream Read ("elempp.in"); std::ofstream Write ("elempp.out"); int N; long long int Numar, aux; Read >> N; for (int i=0; i<N; i++) { Read >> Numar; aux = Numar; while (Numar != 0) { if (Numar > 9 and Numar < 100) if (PatratPerfect(Numar)) Write << aux << " "; Numar /= 10; } } Read.close(); Write.close(); }
  22. Link https://www.pbinfo.ro/?pagina=probleme&id=237 int main() { std::ifstream Read ("sume.in"); std::ofstream Write ("sume.out"); int N, Vector[105], Suma = 0; Read >> N; for (int i=0; i<N; i++) { Read >> Vector[i]; Suma += Vector[i]; } Write << Suma << std::endl; for (int i=N-1; i>=1; i--) { Suma -= Vector[i]; Write << Suma << std::endl; } Read.close(); Write.close(); return 0; }
  23. Link https://www.pbinfo.ro/?pagina=probleme&id=248 int N; long long int Numar[10005], PrimulElement; int main() { std::ifstream Read ("pozitie.in"); std::ofstream Write ("pozitie.out"); Read >> N; for (int i=0; i<N; i++) Read >> Numar[i]; PrimulElement = Numar[0]; std::sort(Numar, Numar+N); int i; for (i=0; i<N; i++) { if (Numar[i] == PrimulElement) break; } Write << i+1; Read.close(); Write.close(); return 0; }
  24. Link https://www.pbinfo.ro/?pagina=probleme&id=238 int main() { std::ifstream Read ("zone.in"); std::ofstream Write ("zone.out"); int N, Numar[305], size = 0, ElementPar, ElementImpar, aux; Read >> N; ElementPar = ElementImpar = 0; while (Read >> Numar[size++]) Read >> Numar[size++]; for (int i=0; i<N; i++) { if (Numar[i] % 2 == 0) { ElementPar = i; break; } } for (int i=(N*3)-1; i>(N*2)-1; i--) { if (Numar[i] % 2 != 0) { ElementImpar = i; break; } } if (ElementPar != 0 and ElementImpar != 0) { aux = Numar[ElementPar]; Numar[ElementPar] = Numar[ElementImpar]; Numar[ElementImpar] = aux; } for (int i=0; i<3*N; i++) Write << Numar[i] << " "; Read.close(); Write.close(); return 0; }
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.