illegal syscall
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

illegal syscall

AutorWiadomość
Temat założony przez niniejszego użytkownika
illegal syscall
» 2017-10-10 19:20:13
Program na wejsciu dostaje 'n' liczba 'a'. Ma wypisać te, które powtarzają się nieparzystą liczbę razy w kolejności rosnącej. Np. dla liczb 4, 2, 13, 2, 4, 4, powinien wypisać 4 oraz 13. Program u mnie działa, ale dla połowy testów w "sprawdzarce" wyskakuje illegal syscal. Ktoś wie co poszlo nie tak?
C/C++
#include<iostream>
#include<queue>
using namespace std;

priority_queue < int, vector < int >, greater < int > > kolejka; //rosnąco
priority_queue < int, vector < int >, greater < int > > liczby;

int main()
{
    int n, a, k;
    int poprzednia;
    int pary = 0;
    cin >> n;
    int kopiaN = n;
   
    while( n > 0 )
    {
        cin >> a;
        n--;
        kolejka.push( a );
    }
   
    for( int i = 0; i < kopiaN; i++ )
    {
        if( kolejka.size() > 0 )
        {
            k = kolejka.top();
            while( k == kolejka.top() )
            {
                poprzednia = k;
                kolejka.pop();
                pary++;
                if( kolejka.size() == 0 ) break;
               
            }
            if( pary % 2 != 0 )
            {
                liczby.push( poprzednia );
            }
            pary = 0;
        }
    }
    int wielkosc = liczby.size();
    for( int i = 0; i < wielkosc; i++ )
    {
        cout << liczby.top() << endl;
        liczby.pop();
    }
    return 0;
}
 
P-165615
» 2017-10-10 20:09:37
pewnie przesadziłeś z pamięcią i potrzebna optymalizacja pod tym względem
spróbuj z kontenerem map
C/C++
#include <iostream>
#include<map>

using namespace std;

int main()
{
   
    map < int, int > kontener;
    int n;
    cin >> n;
    while( n-- ) {
        int liczba;
        cin >> liczba;
        kontener[ liczba ] ++;
    }
    for( auto it = kontener.begin(); it != kontener.end(); it++ ) {
        cout << it->first << " " << it->second << endl;
       
    }
}
P-165624
Temat założony przez niniejszego użytkownika
» 2017-10-10 21:06:33
Da się to jakoś zrobić bez zmiany całego kodu?
P-165628
Temat założony przez niniejszego użytkownika
» 2017-10-10 21:08:23
Zależałoby mi też, żeby program jednak działał uzywając kolejki lub stosu
P-165629
» 2017-10-10 21:11:49
nie wiem czy się da. Musisz zoptymalizować!!! A tego kodu to aż tak wiele nie masz. Zwłaszcza, że to co wkleiłem chyba rozwiązuje twój problem. Czy to przejdzie przez sprawdzarkę tego nie wiem, Bo nawet nie mam pojęcia  gdzie przetestować
C/C++
#include <iostream>
#include<map>
using namespace std;
int main() {
    map < int, int > kontener;
    int n;
    cin >> n;
    while( n-- ) {
        int liczba;
        cin >> liczba;
        kontener[ liczba ] ++;
    }
    for( auto it = kontener.begin(); it != kontener.end(); it++ ) {
        if( it->second % 2 ) cout << it->first << endl;
       
    }
}
P-165631
Temat założony przez niniejszego użytkownika
» 2017-10-10 21:19:24
Narazie to nawet mi się to nie kompiluje. Wychodzi, ze 'It' nie został zadeklarowany.
P-165632
» 2017-10-10 21:26:57
https://ideone.com/YQyRm3
włącz c++11 w swoim ide. Bo prawdopodobnie kompilator nie rozumie "auto". Zresztą warto się przyzwyczajać do nowszych standardów

jeśli już możesz zmienić kod na taki jak niżej i powinien pójść w wersji standardu z przed 2011 roku
C/C++
#include <iostream>
#include<map>

using namespace std;

int main()
{
   
    map < int, int > kontener;
    int n;
    cin >> n;
    while( n-- ) {
        int liczba;
        cin >> liczba;
        kontener[ liczba ] ++;
    }
    for( map < int, int >::iterator it = kontener.begin(); it != kontener.end(); it++ ) {
        if( it->second % 2 ) cout << it->first << endl;
       
    }
}
P-165633
Temat założony przez niniejszego użytkownika
» 2017-10-10 22:33:16
Sprawdzarka też korzysta z tej starej wersji ide także musi być na to jakis inny sposob.  Dodam, ze program musi sie zmieścić w : Time-2s | Memory - 2Mb
P-165634
« 1 » 2
 Strona 1 z 2Następna strona