C/C++

Член од
16 јуни 2022
Мислења
6
Поени од реакции
0
C++ е поефикасна и пофлексибилна верзија на програмскиот јазик C. C++ има низок степен на апстракција и се потпира на управувањето со човечката меморија. Тоа е лесен програмски јазик кој може да се користи за конструирање програми за различни платформи.
C е процедурален јазик, но C++ е објектно-ориентиран програмски јазик со неколку способности ексклузивни за C++. Бидејќи C++ се базира на C, има многу исти карактеристики како C и оние кои се супериорни во однос на C. Ако сакате да научите програмски јазик, погледнете на интернет, постојат различни бесплатни и платени ресурси, но јас ја наоѓам оваа веб-локација многу корисно бидејќи бесплатно го разгледува секој аспект од различните програмски јазици.
 

Maksimot

Психијатриски случај
Член од
28 јули 2021
Мислења
272
Поени од реакции
289
Разлика Во Висини
Помош?

Еве го и мојот код:
C++:
#include <bits/stdc++.h>
#define pb push_back
 
using namespace std;
 
int main()
{
    vector<long long int> drva;
    long long int prvaNula, poslednaNula;
    bool zaPrva = true;
    long long int i = 0;
    while(i < 1000000) {
        long long int a;
        cin>>a;
        if(a == 11111) break;
        else {
            if(a == 0 && zaPrva == true) {
                prvaNula = i;
                zaPrva = false;
            } else if(a == 0 && zaPrva == false) {
                poslednaNula = i;
            }
            drva.pb(a);
            i++;
        }
    }
 
    long long int najgolem = 0, najmal = 10000000;
 
    for(int i=prvaNula+1; i<=poslednaNula; i++) {
        if(drva[i] == 0) continue;
 
        if(drva[i] > najgolem) {
          long long int temp = najgolem;
          najgolem = drva[i];
          if(temp < najmal && temp != 0) najmal = temp;
        } else if(drva[i] < najmal) {
          najmal = drva[i];
        }
    }
    cout<<najgolem - najmal;
    return 0;
}
 
Член од
21 март 2014
Мислења
488
Поени од реакции
336
Разлика Во Висини
Помош?

Еве го и мојот код:
C++:
#include <bits/stdc++.h>
#define pb push_back

using namespace std;

int main()
{
    vector<long long int> drva;
    long long int prvaNula, poslednaNula;
    bool zaPrva = true;
    long long int i = 0;
    while(i < 1000000) {
        long long int a;
        cin>>a;
        if(a == 11111) break;
        else {
            if(a == 0 && zaPrva == true) {
                prvaNula = i;
                zaPrva = false;
            } else if(a == 0 && zaPrva == false) {
                poslednaNula = i;
            }
            drva.pb(a);
            i++;
        }
    }

    long long int najgolem = 0, najmal = 10000000;

    for(int i=prvaNula+1; i<=poslednaNula; i++) {
        if(drva[i] == 0) continue;

        if(drva[i] > najgolem) {
          long long int temp = najgolem;
          najgolem = drva[i];
          if(temp < najmal && temp != 0) najmal = temp;
        } else if(drva[i] < najmal) {
          najmal = drva[i];
        }
    }
    cout<<najgolem - najmal;
    return 0;
}
Неколку работи, немаш потреба од long long, бидејќи влезот е помеѓу 600-6000, else после break не ти треба, исто така не ти треба секој влез туку најголемиот или најмалиот во момент кога ќе ја најдеш последната нула. Бидејќи не се знае каде се наоѓа последната нула, ти можеш да наоѓаш за секоја следна нула после првата кој е најдобриот резултат, бидејќи пред секоја следна нова нула ако најдеш подобар минимум или подобар максимум, кога ќе дојдеш на таа нула потенцијално ќе имаш подобар резултат од резултатот кој го чуваш до претходната нула, и на тој начин ти се повторува под-проблемот.

C++:
#include <iostream>

using namespace std;

int main(){
    int input, maximum = 599, minimum = 6001;
    bool isInside = false;
    int bestDifference = -1;
    do{
        cin >> input;
        if(input == 0 && !isInside) { isInside = true; continue;}
        if(!isInside) continue;
        if(input != 0 && input>maximum) maximum = input;
        if(input != 0 && input<minimum) minimum = input;
        if(input == 0 && isInside) // zamisli deka ova e poslednata nula, togash do tuka vazhat max i min
            bestDifference = max(bestDifference, maximum-minimum); // dali noviot max-min e podobar od momentalniot max-min?
    }while(input!=11111);
    cout << bestDifference;
}
 
Член од
16 јуни 2022
Мислења
6
Поени од реакции
0
Разлика Во Висини
Помош?

Еве го и мојот код:
C++:
#include <bits/stdc++.h>
#define pb push_back

using namespace std;

int main()
{
    vector<long long int> drva;
    long long int prvaNula, poslednaNula;
    bool zaPrva = true;
    long long int i = 0;
    while(i < 1000000) {
        long long int a;
        cin>>a;
        if(a == 11111) break;
        else {
            if(a == 0 && zaPrva == true) {
                prvaNula = i;
                zaPrva = false;
            } else if(a == 0 && zaPrva == false) {
                poslednaNula = i;
            }
            drva.pb(a);
            i++;
        }
    }

    long long int najgolem = 0, najmal = 10000000;

    for(int i=prvaNula+1; i<=poslednaNula; i++) {
        if(drva[i] == 0) continue;

        if(drva[i] > najgolem) {
          long long int temp = najgolem;
          najgolem = drva[i];
          if(temp < najmal && temp != 0) najmal = temp;
        } else if(drva[i] < najmal) {
          najmal = drva[i];
        }
    }
    cout<<najgolem - najmal;
    return 0;
}
благодарам! Одвоив време и ми објаснив, но проблемот се реши.
 
Член од
14 јануари 2023
Мислења
3
Поени од реакции
0
Pomos
Shanon fano code for data compression c++
 

Kajgana Shop

На врв Bottom