Witam !
SPOJ nie akceptuje mi mojego kodu, który lokalnie (Code Blocks) działa dobrze. Według SPOJ-a jest błąd:
błąd wykonania (SIGABRT)
#include <iostream>
using namespace std;
unsigned int n=0;
unsigned int d=0;
unsigned int punkty=0;
unsigned int ile_razy=0;
unsigned int N=0;
void sortowanie_babelkowe(unsigned int *tab, unsigned int n) //dostaje oryginalna talice i ilosc liczb w tablicy czyli "n"
{
for(int i=1; i<n; i++)
{
for(int j=n-1; j>=1; j--)
{
if(tab[j]>tab[j-1]) // sortuje roznaco, ale jak zmienimy na "<" to zacznie malejaco
{
int bufor;
bufor=tab[j-1];
tab[j-1]=tab[j];
tab[j]=bufor;
}
}
}
}
void sortowanie_babelkowe2(unsigned int *tab, unsigned int n) //dostaje oryginalna talice i ilosc liczb w tablicy czyli "n"
{
for(int i=1; i<n; i++)
{
for(int j=n-1; j>=1; j--)
{
if(tab[j]<tab[j-1]) // sortuje roznaco, ale jak zmienimy na "<" to zacznie malejaco
{
int bufor;
bufor=tab[j-1];
tab[j-1]=tab[j];
tab[j]=bufor;
}
}
}
}
int main()
{
cin>>d;
if((1<=d) && (d<=500))
{
for(int u=0; u<d; u++)
{
//cout << "Podaj liczbe zawodnikow: " << endl;
cin>>n;
if((1<=n) && (n<=200))
{
unsigned int *tablica;
tablica=new unsigned int[n];
for(int y=0; y<n; y++)
{
cin>>punkty;
if(punkty<=1000)
{
tablica[y]=punkty;
punkty=0;
}
}
sortowanie_babelkowe(tablica,n);
//cout<<"Po 1 posortowaniu 1 tablicy: ";
/*
for(int i=0; i<n; i++)
{
//cout<<tablica[i]<<" ";
}
*/
// patrzymy ile liczb jest takich samych punktowo
for(int z=0; z<n; z++)
{
if(tablica[0]==tablica[z])
ile_razy++;
}
//cout<<"Ile razy: "<<ile_razy<<endl;
// SORTUJEMY JAK BY 2 CZESC TEJ TABLICY MALEJACO
N=n-ile_razy;
unsigned int *tablica2;
tablica2=new unsigned int[N];
for(int r=N; r>=0; r--)
{
tablica2[r]=tablica[r+ile_razy];
}
/*
//cout<<"Wyglad 2 tablicy: ";
for(int i=0; i<N; i++)
{
//cout<<tablica2[i]<<" ";
}
*/
sortowanie_babelkowe2(tablica2,N);
//cout<<endl;
/*
//cout<<"Po 1 posortowaniu 2 tablicy: ";
for(int i=0; i<N; i++)
{
//cout<<tablica2[i]<<" ";
}
*/
// cout<<endl;
unsigned int *tablica3;
tablica3=new unsigned int[n];
for(int i=0; i<n; i++)
{
tablica3[i]=tablica[i];
}
for(int i=0; i<N; i++)
{
tablica3[ile_razy+i]=tablica2[i];
}
//cout<<"Koniec zadania: ";
for(int i=0; i<n; i++)
{
cout<<tablica3[i]<<" ";
}
cout<<endl;
punkty=0;
ile_razy=0;
delete[]tablica;
delete[]tablica2;
delete[]tablica3;
}
}
}
return 0;
}
created
last reply
- 68
replies
- 4.0k
views
- 14
users
- 19
likes
- 21
links
There are 68 replies with an estimated read time of 13 minutes.