Jump to content

Andreigl

VIP
  • Posts

    1958
  • Joined

  • Last visited

Posts posted by Andreigl

  1. long long int CMMDC(long long int A, long long int B)
    {
        long long int Rest;
    
        while (B != 0)
        {
            Rest = A % B;
            A = B;
            B = Rest;
        }
    
        return A;
    }
    
    int main()
    {
        int N;
        if(scanf("%d", &N));
    
        long long int _Numar[1005];
        for(int i=0; i<N; i++)
            if(scanf("%lld", &_Numar[i]));
    
        long long int Impartitor;
        if (N >= 2)
        {
            Impartitor = CMMDC(_Numar[0], _Numar[1]);
            for(int i=2; i<N; i++)
                Impartitor = CMMDC(Impartitor, _Numar[i]);
        }
    
        printf("%lld", Impartitor);
    }

    Link: https://www.pbinfo.ro/probleme/305/cmmdcn

  2. bool Prime(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()
    {
        long long int Numar;
        if(scanf("%lld", &Numar));
    
        for(;;)
        {
            Numar++;
            if(Prime(Numar))
                break;
        }
    
        printf("%lld", Numar);
    
        return 0;
    }

    Link: https://www.pbinfo.ro/probleme/375/urmatorul-prim

  3. bool Prime(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()
    {
        int A, B, Perechi = 0;
        if(scanf("%d %d", &A, &B));
    
        if(A > B)
        {
            for(int i=B; i<=A; i++)
                if(Prime(i))
                    Perechi++;
        }
        else
            for(int i=A; i<=B; i++)
                if(Prime(i))
                    Perechi++;
    
        printf("%d", Perechi);
    
        return 0;
    }

    Link: https://www.pbinfo.ro/probleme/44/primeinterval

  4. // #include <climits>
    
    bool Prime(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()
    {
        int N, _Numere_Prime = 0;
        long long int Numar, min=LLONG_MAX, max=0;
    
        if(scanf("%d", &N));
    
        for(int i=0; i<N; i++)
        {
            if(scanf("%lld", &Numar))
            {
                if(Prime(Numar))
                {
                    _Numere_Prime++;
    
                	if(Numar > max)
                    	max = Numar;
    
                	if (min > Numar)
                    	min = Numar;
                }
            }
        }
    
        printf("%d %lld %lld", _Numere_Prime, min, max);
    
        return 0;
    }

    Link: https://www.pbinfo.ro/probleme/1408/numere10

  5. bool Prime(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()
    {
        int N, Aparitie = 0;
        long long int Numar, max = 0;
    
        if(scanf("%d", &N));
    
        for(int i=0; i<N; i++)
        {
            if(scanf("%lld", &Numar))
            {
                if(Prime(Numar) and Numar > max)
                {
                    max = Numar;
                    Aparitie = 0;
                }
    
                if(Numar == max)
                    Aparitie++;
            }
        }
    
        printf("%lld %d", max, Aparitie);
    
        return 0;
    }

     

    Link: https://www.pbinfo.ro/probleme/436/primmaxim

  6. long long int base_convertor(long long int Numar, int Baza)
    {
        long long int base = 0, P = 1;
        int Rest;
    
        while(Numar != 0)
        {
            Rest = Numar % 10;
            Numar /= 10;
            base = base + Rest * P;
            P *= Baza;
        }
    
        return base;
    }
    
    int main()
    {
        int Baza,Cifre,_Cifra;
        if(scanf("%d %d", &Baza, &Cifre));
    
        long long int Numar = 0;
        for(int contor=0; contor<Cifre; contor++)
        {
            if(scanf("%d", &_Cifra));
    
            Numar = Numar * 10 + _Cifra;
        }
    
        printf("%lld", base_convertor(Numar, Baza));
    }

    Link: https://www.pbinfo.ro/probleme/428/transfb

  7. int main()
    {
        long long int N;
        long long int _aux = 0, P = 1;
        int Baza, Rest;
    
        if(scanf("%lld %d", &N, &Baza));
    
        while(N)
        {
            Rest = N % Baza;
            N /= Baza;
            _aux = _aux + Rest * P;
            P *= 10;
        }
    
        int cif_max = 0;
        while(_aux)
        {
            if(_aux % 10 > cif_max)
                cif_max = _aux % 10;
    
            _aux /= 10;
        }
    
        printf("%d", cif_max);
    
        return 0;
    }

    Link: https://www.pbinfo.ro/probleme/426/bazab

  8. int main()
    {
        std::ifstream ReadFromFile("unice1.in");
        std::ofstream WriteToFile("unice1.out");
        
        int N, array[1005], Unice = 0, K = 0;
        ReadFromFile >> N;
        
        for(int i=0; i<N; i++)
            ReadFromFile >> array[i];
            
        for(int i=0; i<N; i++)
        {
            K = 0;
    
            for(int j=0; j<N; j++)
            {
                if( array[i] == array[j])
                    K++;
            }
    
            if(K == 1)
                Unice++;
        }
    
        WriteToFile << Unice;
        
        return 0;
    }

     

    Link: https://www.pbinfo.ro/probleme/270/unice1

  9. int main()
    {
        int N, M, Contor = 0;
        if(scanf("%d %d", &N, &M));
    
        long long int Numar, Suma = 0, array[M], Max = 0;
    
        for(int i=0; i<(N*M); i++)
        {
            if(scanf("%lld", &Numar))
            {
                Contor++;
                array[Contor] = Numar;
    
                if(Contor == M)
                {
                    for(int j=1; j<=M; j++)
                        if(array[j] > Max)
                            Max = array[j];
    
                    for(int j=1; j<=M; j++)
                        Suma += array[j];
    
                    Suma -= Max;
                    printf("%lld ", Suma);
    
                    Contor = 0;
                    Suma = 0;
                    Max = 0;
                }
            }
        }
    }

    Link: https://www.pbinfo.ro/probleme/659/sumalinii1

  10. bool Prim(long long int Numar)
    {
        if(Numar == 2)
            return true;
    
        if(Numar % 2 == 0 or Numar < 2)
            return false;
    
        for(int i=3; (i*i)<=Numar; i+=2)
            if(Numar % i == 0)
                return false;
    
        return true;
    }
    
    
    int main()
    {
        int N, M, Numere = 0, Contor = 0, Line = 1;
        if(scanf("%d %d", &N, &M));
    
        long long int Numar, array[M];
    
        for(int i=1; i<=N; i++)
        {
            for(int j=1; j<=M; j++)
            {
                if(scanf("%lld", &Numar))
                {
                    if(i % 2 == 0)
                        if(Prim(Numar))
                            Numere++;
                }
            }
        }
    
        printf("%d", Numere);
    }

     

    Link: https://www.pbinfo.ro/probleme/666/nrprime

  11. Link: https://www.pbinfo.ro/?pagina=probleme&id=2275

     

    #include <fstream>
    #include <algorithm>
    
    int main()
    {
    	std::ifstream fileIn("minimdoua.in");
    	std::ofstream fileOut("minimdoua.out");
    
    	int N, Numar[250], read, Contor = 0;
    	fileIn >> N;
    
    	for (int i = 0; i < N; i++)
    	{
    		fileIn >> read;
    		if (read > 9)
    		{		
    			int Cif_1 = read % 10;
    			int Cif_2 = (read / 10) % 10;
    				
    			if (Cif_1 == Cif_2)
    			{
    				Numar[Contor] = read;
    				Contor++;
    			}
    		}
    	}
    
    	std::sort(Numar, Numar + Contor);
    	if (Contor > 1)
    		fileOut << Numar[0] << " " << Numar[1];
    	else fileOut << "numere insuficiente";
    }

     

  12. Link: https://www.pbinfo.ro/?pagina=probleme&id=1424

     

    int main()
    {
    	std::ifstream readFile("smartphone.in");
    	std::ofstream writeFile("smartphone.out");
    
    	int Conditie, Telefoane, contor;
    	long long int Performanta[10000];
    
    	readFile >> Conditie >> Telefoane;
    	for (contor = 0; contor < Telefoane; contor++)
    		readFile >> Performanta[contor];
    
    	std::sort(Performanta, Performanta + contor, std::greater<int>());
    	if (Conditie == 1)
    		writeFile << Performanta[0];
    	else writeFile << Performanta[1];
    }

     

  13. Link: https://www.pbinfo.ro/?pagina=probleme&id=770

     

    int main()
    {
    	int N, M, array[100][100], copy[100][1];
    	scanf("%d %d", &N, &M);
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			scanf("%d", &array[c][l]);
    
    	for (int c = 0; c < N; c++)
    		copy[c][0] = array[c][0];
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			array[c][l] = array[c][l + 1];
    
    	for (int c = 0; c < N; c++)
    		array[c][M - 1] = copy[c][0];
    
    	for (int c = 0; c < N; c++)
    	{
    		for (int l = 0; l < M; l++)
    			printf("%d ", array[c][l]);
    		printf("\n");
    	}
    }

     

     

  14. Link: https://www.pbinfo.ro/?pagina=probleme&id=771

     

    int main()
    {
    	int N, M, array[100][100], suma[100];
    	long long int lowest_line = 2147483647;
    
    	scanf("%d %d", &N, &M);
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			scanf("%d", &array[c][l]);
    
    	for (int c = 0; c < N; c++)
    		suma[c] = 0;
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			suma[c] += array[c][l];
    
    	for (int i = 0; i < N; i++)
    	{
    		int index = 0;
    
    		for (int c = 0; c < N; c++)
    			if (suma[c] != -1 and suma[c] < lowest_line)
    			{
    				lowest_line = suma[c];
    				index = c;
    			}
    		suma[index] = -1;
    		lowest_line = 2147483647;
    		
    		for (int l = 0; l < M; l++)
    			printf("%d ", array[index][l]);
    
    		printf("\n");
    	}
    }

     

  15. Link: https://www.pbinfo.ro/?pagina=probleme&id=773

     

    int main()
    {
    	int N, M, max = 0, max_number = 0;
    	int array[100][100], index[100][100];
    	std::cin >> N >> M;
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    		{
    			std::cin >> array[c][l];
    			index[c][l] = 0;
    
    			for (int j = 0; j < N; j++)
    				for (int k = 0; k < M; k++)
    					if (array[c][l] == array[j][k])
    					{
    						index[c][l]++;
    						if (index[c][l] > max)
    							max = index[c][l];
    					}
    		}
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			if (index[c][l] == max)
    				if (array[c][l] > max_number)
    					max_number = array[c][l];
    
    	printf("%d", max_number);
    }

     

  16. Link: https://www.pbinfo.ro/?pagina=probleme&id=772

     

    int main()
    {
    	int N, M, max = 0, size = 0, lastAp = -1;
    	int array[100][100], index[100][100], numere[100];
    	std::cin >> N >> M;
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    		{
    			std::cin >> array[c][l];
    			index[c][l] = 0;
    		}
    
    	for (int j = 0; j < N; j++)
    		for (int k = 0; k < M; k++)
    			for (int c = 0; c < N; c++)
    				for (int l = 0; l < M; l++)
    					if (array[j][k] == array[c][l])
    						index[c][l]++;
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			if (index[c][l] > max)
    				max = index[c][l];
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			if (index[c][l] == max)
    			{
    				numere[size] = array[c][l];
    				size++;
    			}
    	
    	std::sort(numere, numere + size);
    	for (int i = 0; i < size; i++)
    		if (numere[i] != lastAp)
    		{
    			lastAp = numere[i];
    			printf("%d ", numere[i]);
    		}
    	
    	
    }

     

  17. Link: https://www.pbinfo.ro/?pagina=probleme&id=2807

     

    int main()
    {
    	int N, M, min1, min2, coloana1, coloana2;
    	int array[100][100];
    	std::cin >> N >> M;
    
    	min1 = min2 = 2147483647;
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			std::cin >> array[c][l];
    
    	for (int c = 0; c < N; c++)
    	{
    		if (array[c][0] < min1)
    		{
    			min1 = array[c][0];
    			coloana1 = c;
    		}
    
    		if (array[c][M - 1] < min2)
    		{
    			min2 = array[c][M - 1];
    			coloana2 = c;
    		}
    	}
    
    	array[coloana1][0] = min2;
    	array[coloana2][M - 1] = min1;
    	
    	for (int c = 0; c < N; c++)
    	{
    		for (int l = 0; l < M; l++)
    			printf("%d ", array[c][l]);
    		printf("\n");
    	}
    }

     

  18. Link: https://www.pbinfo.ro/?pagina=probleme&id=776

     

    Varianta mea:

    int main()
    {
    	int N, M, result = 0;
    	int array[100][100];
    	bool pas = true;
    	std::cin >> N >> M;
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			std::cin >> array[c][l];
    
    	for (int c = 0; c < N; c++)
    	{
    		for (int l = 0; l < M; l++)
    		{
    			if (array[c][l] != array[c][0])
    			{
    				pas = false;
    				break;
    			}
    		}
    
    		if (pas == true)
    			result++;
    
    		pas = true;	
    	}
    
    	printf("%d", result);
    }

     

    Varianta autorului:

    int n,m,a[101][101];
    
    int main()
    {
    	cin >> n >> m;
    	for(int i = 1 ; i <= n ; ++i)
    		for(int j = 1 ; j <= m ; ++j)
    			cin >> a[i][j];
    	
    	int cnt = 0;
    	for(int i = 1 ; i <= n ; i ++)
    	{
    		bool ok = true;
    		for(int j = 1 ; j <= m ; ++j)
    			if(a[i][j] != a[i][1])
    				ok = false;
    		if(ok)
    			cnt ++;
    	}
    	
    	cout << cnt;
    	
    	return 0;
    }

     

  19. Link: https://www.pbinfo.ro/?pagina=probleme&id=2825

     

    Varianta mea:

    int main()
    {
    	int N, M, X;
    	int array[100][100];
    	bool Result = false;
    	std::cin >> N >> M;
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			std::cin >> array[c][l];
    
    	std::cin >> X;
    
    	/* ----------------------- (de sus) */
    	for (int l = 0; l < M; l++)
    		if (array[0][l] == X)
    		{
    			Result = true;
    			break;
    		}
    
    	/*
    		(din stanga)
    		|
    		|
    		|
    		|
    		|
    		|
    	*/
    	if (Result != true)
    		for(int c=0; c<N; c++)
    			if (array[c][0] == X)
    			{
    				Result = true;
    				break;
    			}
    
    	/* ----------------------- (de jos) */
    	if (Result != true)
    		for (int c = 0; c < N - 1; c++)
    			if (array[N - 1][c] == X)
    			{
    				Result = true;
    				break;
    			}
    
    	/*
    		(din dreapta)
    		|
    		|
    		|
    		|
    		|
    		|
    	*/
    	if(Result != true)
    		for (int c = 0; c < N - 1; c++)
    			if (array[c][M - 1] == X)
    			{
    				Result = true;
    				break;
    			}
    
    	if (Result)
    		printf("DA");
    	else printf("NU");
    }

     

    Varianta autorului:

    int main()
    {
        int n , m , x , A[101][101];
        cin >> n >> m;
        for(int i = 1; i <= n ; i ++)
            for(int j = 1; j <= m ; j ++)
                cin >> A[i][j];
        cin >> x;
        
        int gasit = 0;
        for(int i = 1; i <= n ; i ++)
            for(int j = 1; j <= m ; j ++)
                if(i == 1 || i == n || j == 1 || j == m)
                    if(A[i][j] == x)
                        gasit = 1;
        
        if(gasit)
            cout << "DA\n";
        else
            cout << "NU\n";
        return 0;
    }

     

  20. Link: https://www.pbinfo.ro/?pagina=probleme&id=2800

     

    Varianta mea:

    int main()
    {
    	int N, M;
    	int array[100][100];
    	std::cin >> N >> M;
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			std::cin >> array[c][l];
    
    	int X = array[N - 1][M - 1];
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			if (c == 0 || l == 0 || c == N - 1 || l == M - 1)
    				array[c][l] = X;
    
    	for (int c = 0; c < N; c++)
    	{
    		for (int l = 0; l < M; l++)
    			printf("%d ", array[c][l]);
    		printf("\n");
    	}
    }

     

    Varianta autorului:

    int main()
    {
        int n , m ,a[51][51];
        cin >> n >> m;
        for(int i = 1 ; i <= n ; i ++)
            for(int j = 1 ; j <= m ; j ++)
                cin >> a[i][j];
        
        int x = a[n][m];
        for(int i = 1 ; i <= n ; i ++)
            for(int j = 1 ; j <= m ; j ++)
                if(i == 1 || i == n || j == 1 || j == m)
                    a[i][j] = x;
        for(int i = 1 ; i <= n ; i ++)
        {
            for(int j = 1 ; j <= m ; j ++)
                cout << a[i][j] << " ";
            cout << "\n";
        }
        return 0;
    }

     

  21. Link: https://www.pbinfo.ro/?pagina=probleme&id=778

     

    Varianta mea:

    #include <iostream>
    #include <algorithm>
    
    int main()
    {
    	int N, M, i = 0, lastElement = -1;
    	int array[100][100], elemente[10000];
    	std::cin >> N >> M;
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    		{
    			std::cin >> array[c][l];
    			if (c == 0 || l == 0 || c == N - 1 || l == M - 1)
    				elemente[i++] = array[c][l];
    		}
    
    	std::sort(elemente, elemente + i);
    	for (int j = 0; j < i; j++)
    	{
    		if (elemente[j] != lastElement)
    		{
    			lastElement = elemente[j];
    			printf("%d ", elemente[j]);
    		}
    	}
    }

     

    Varianta autorului:

    int n,m,a[101][101] , v[500] , k;
    
    int main()
    {
    	cin >> n >> m;
    	for(int i = 1 ; i <= n ; ++i)
    		for(int j = 1 ; j <= m ; ++j)
    			cin >> a[i][j];
    	
    	k = 0;
    	
    	for(int i = 1 ; i <= n ; i ++ )
    		for(int j =1 ; j <=m ; j ++)
    			if(i == 1 || i == n || j == 1 || j == m)
    			{
    				bool gasit = false;
    				for(int p = 1 ; p <= k && ! gasit ; p ++)
    					if(a[i][j] == v[p])
    						gasit = true;
    				if(! gasit)
    				{
    					int p = k + 1;
    					for(p = k + 1 ; p > 1 && v[p-1] > a[i][j] ; p --)
    						v[p] = v[p-1];
    					v[p] = a[i][j];
    					k ++;
    				}
    			}
    	for(int i = 1; i <= k ; i ++)
    		cout << v[i] << " ";
    	return 0;
    }

     

  22. Pentru a accesa această problemă, apasă aici.

     

     

    struct index
    {
    	int C, L;
    } index;
    
    int main()
    {
    	int N, M, max = 0;
    	int array[100][100];
    	std::cin >> N >> M;
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			std::cin >> array[c][l];
    
    	for (int i = 0; i < N * M; i++)
    	{
    		for (int c = 0; c < N; c++)
    			for (int l = 0; l < M; l++)
    				if (array[c][l] > max)
    				{
    					max = array[c][l];
    					index.C = c;
    					index.L = l;
    				}
    
    		array[index.C][index.L] = -1;
    
    		for (int j = 0; j < N; j++)
    			for (int k = 0; k < M; k++)
    				if (array[j][k] == max)
    				{
    					printf("%d", array[j][k]);
    					return 0;
    				}
    
    		max = -1;
    	}
    
    	printf("IMPOSIBIL");
    }

     

  23. În acest topic o să postez diferite probleme de pe site-ul pbinfo, probleme făcute de mine. Problemele nu sunt explicate, ci doar am pus sursa.

    Link direct: https://www.pbinfo.ro/

     

    ----------------------------------------------------------------------------

     

    Pentru a accesa această problema, apasă aici.

     

    Rezolvarea:

    	int N, M;
    	int array[100][100];
    	bool loop = true, found = false;
    	std::cin >> N >> M;
    
    	for (int c = 0; c < N; c++)
    		for (int l = 0; l < M; l++)
    			std::cin >> array[c][l];
    
    	for (int l = 0; l < M; l++)
    	{
    		for (int c = 0; c < N; c++)
    		{
    			if (array[0][l] != array[c][l])
    			{
    				loop = false;
    				break;
    			}
    		}
    
    		if (loop)
    		{
    			printf("%d ", array[0][l]);
    			found = true;
    		}
    		loop = true;
    	}
    
    	if (found == false)
    		printf("nu exista");

     

  24. if (An % 4 == 0 && An % 100 > 0) 	
    	std::cout << "bisect";
    else
    if (An % 400 == 0)	
    	std::cout << "bisect";
    else	
    	std::cout << "nebisect";

    Un an este bisect atunci când se divide cu 4 și nu se divide cu 100 sau se divide cu 400.

    Este deja un tutorial pentru această funcție, însă nu este corect. 

     

  25. Să zicem că avem variabile de tip string și vrem să le unim. 

    Vom proceda în felul următor:

    std::string myFirstString = "Exemplu";
    std::string mySecondString = "de formatare a unui string";
    std::string finalString = myFirstString + ' ' + finalString;

     

    Dacă afișăm finalString, output-ul va fi:

    Exemplu de formatare a unui string

     

    Dar dacă avem o variablă de tip char și una de tip string,

    char myChar[10] = { 'S', 'h', 'a', 'n', 'k', 'e', 'r'};
    std::string myString = "http://rpg.b-zone.ro/players/general/";
    std::string formatedString = myString + myChar;

     

    Dacă avem 2 variabile de tip char, atunci 1 va trebui transformată într-o variabilă de tip string:

    char myChar[10] = { 'S', 'h', 'a', 'n', 'k', 'e', 'r'};
    char myString[256] = "http://rpg.b-zone.ro/players/general/";
    std::string chartoString = myString;
    std::string formatedString = chartoString + myChar;

     

×
×
  • 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.