61 / 83
Jan 2010

A sprawdziłeś w ogóle program dla danych testowych...?
Masz złe odpowiedzi dla liczb ujemnych.

o.0 nie ma to jak robic kilka(nascie) rzeczy naraz... no ale kod dla potomnych, jak znajda blad niech maja;]

12 days later

Witam.
Mam problem z zadaniem z tematu które jakiś czas temu robiłem. Przykładowe dane wychodzą dokładnie tak samo, na innych także testowałem, wynik pozytywny mym skromnym zdaniem. Jednakże sędzią zwraca mi błędną odpowiedź. Kod który był poddawany testowi wygląda tak:

#include <iostream>
#include <string.h>
using namespace std;
int main()
{ 
 int t,t2,i,asd;
 float a;
 char foo[15];
 cin >> t;
 while(t--)
 {
  cin >> t2;
  i=0;
  char nazwa[t2][15];
  int ptk[t2][2];
  float wynik[t2];
  while(i<t2)
  {
   cin >> nazwa[i] >> ptk[i][0] >> ptk[i][1];
   wynik[i] = (ptk[i][0]*ptk[i][0])+(ptk[i][1]*ptk[i][1]);
   i++;
  }
  for(i=0;i<t2-1;i++)
  {
   for(int j=i;j<t2-1;j++)
   {
           if(wynik[j] > wynik[j+1])
           {
               strcpy(foo, nazwa[j+1]);
               strcpy(nazwa[j+1], nazwa[j]);
               strcpy(nazwa[j], foo);
               a = wynik[j+1];
               wynik[j+1] = wynik[j];
               wynik[j] = a;
               asd = ptk[j+1][0];
               ptk[j+1][0] = ptk[j][0];
               ptk[j][0] = asd;
               asd = ptk[j+1][1];
               ptk[j+1][1] = ptk[j][1];
               ptk[j][1] = asd;
           }
   }
  }
  for(i=0;i<t2;i++)
  {
   cout << nazwa[i] << " "<< ptk[i][0] << " " <<  ptk[i][1] << endl;
  }
  if(t>0)cout << endl;
 } 
 return 0;   
}

Proszę o pomoc wink
Z góry dzięki dla zainteresowanych.

No więc na przykład taki test:

1
10
A 7 7
B -7 -7
C -7 7
D 7 -7
E 5 5
F -5 -5
G -5 5
H 5 -5
I 7 5
J 5 7

Odpowiedź mojego zaakceptowanego programu:

E 5 5
F -5 -5
G -5 5
H 5 -5
I 7 5
J 5 7
A 7 7
B -7 -7
C -7 7
D 7 -7
1 month later

Witam, próbuję rozwiązać to zadanie, ale otrzymuję status SE. Proszę o komentarz do mojego kodu, wskazówkę lub wyjaśnienie błędu w moim zrozumieniu treści zadania.
Kod:

tu był kod
1 year later

raczy sory źle napisałem ... chciałem napisać 4 punkty i jakaś sugestia aby dostać 5 ??

1 year later
1 year later

to zależy smile, w programie można

w deklaracji struktury też, ale tylko wtedy, gdy jest typu static const, czyli pożytek z takiej zmiennej niewielki

i oczywiście można napisać konstruktor dla struktury, a tam można nadać wartość

1 month later

Zapewne używasz nowszego, niż na spoju kompilatora c++. Funkcja lambda i takie tam inne udogodnienia. Jeżli innym się to udało w c++, to albo to ty popraw swój kod, albo poczekaj, aż na spoju zostanie zaktualizowany kompilator do nowszej wersji, ale to może potrwać.

Ależ ja wiem, że się da, chciałem jednak wysłać rozwiązanie trochę bardziej urozmaicone, dla własnej satysfakcji. Wręcz się zdziwiłem, że SPOJ nie obsługuje wszystkich najnowszych standardów. Ciekaw jestem kiedy to poprawią.

2 months later

Dzięki za pomoc i rade. Od dziś będę stosował nazwy zmiennych takie jakie są podane w zadaniu unamused

1 month later

Spróbuj skompilwać to u siebie i sprawdź wynik dla danych 100 100. Ja dostaje u siebie wynik 23561.944905 (po usunięciu linii o której wspomniałeś).
Chodzi mi o to, że może jest coś nie tak z Code::Blocks , skoro dostaje inny wynik niż podany na stronie z zadaniem.

No i bardzo dobrze. Ja u sibie, zanim napisałem, już sprawdzałem. Teraz też i dla 100 100, mam dokładnie taki sam wynik jak ty, z dokładnością do ostatniego miejsca.
Ale w zadaniu są dwa zupełnie inne testy:
10 10
oraz
1000 1500,
Chyba, że porównujesz wynik dla 100 100 do jakiegoś testu tu na forum?

omg....
nie potrafię wyjaśnić dlaczego ubzdurałem sobie, że jest tam 100 100.
ok, w takim razie wszystko jasne smiley

16 days later

Uzywasz "i" do przechodzenia po testach, a wewnątrz znowu do np. przechodzenia po wczytywaniu. Stawiam, że przez to cos może się z tym "i" namieszać i wysypać.

Jest to normalne zasłanianie nazw. Poza pętlami, gdzie zasłaniam iterator głównej pętli iteratorem o tej samej nazwie, ale nie koniecznie wartości, i ma odpowiednią wartość, a pętla główna działa tak, jak trzeba.

3 months later

Witam, mam następujący problem, mój kod przechodzi podane przykładowe testy ale jak go wrzucam na spoja to wywala mi
REZULTAT: 0.8 (limit: 2)
Czy ktoś może mi powiedzieć o co chodzi?
Mój kod:

[bbone=CSHARP,2501]
//ZROBIONE
[/bbone]

Witajcie. potrzebuje pomocy, dostaje WA, a testy przechodzi frowning moze chodzi tu i wyjscie ? moje wyjscie jest stringiem, a czy powinno byc string int int ?

[bbone=cpp,2556]#include

include

include

using namespace std;

int ile,ile2;

void sortowanie_babelkowe(int *tab, int n,string *tab2);//string *tab2 punkty

int main()
{
cin>>ile;// wczytaj liczbe testow
for (int i=0; i {
cin>>ile2;//wczytaj liczbe zmiennych

    int p1[ile2],p2[ile2],pkt2;//wsp punktu 1wszego,drugiego,pkt2 - pomocnicza w liczeniu odleglosci od srodka ukladu
    string punkt[ile2],calosc[ile2],cal,cal2;// nazwa punktu, polaczone punkty z nazwa w stringa, pomocnicze przy tworzeniu zmiennej calosc


    //int *pkt;// odleglosc punktow od srodka ukladu
    int pkt [ile2];

    for (int i2=0; i2<ile2; i2++)
    {

        cin>>punkt[i2]>>p1[i2]>>p2[i2];
        pkt2=p1[i2]*p1[i2]+p2[i2]*p2[i2];
        pkt2=sqrt(pkt2);
        pkt[i2]=pkt2;
        //cout<<pkt[i2]<<endl;
        ostringstream ss;

        ss << p1[i2];
        string str = ss.str();

        cal=punkt[i2]+" "+str+" ";

        ss.str("");
        ss<<p2[i2];
        str =ss.str();
        calosc[i2]=cal+str;

    }

    sortowanie_babelkowe(pkt, ile2, calosc);

    for (int i2=0; i2<ile2; i2++)
    {

        cout<<calosc[i2]<<endl;

    }
    cout<<endl;
    //delete [] pkt;
}

return 0;

}

void sortowanie_babelkowe(int *tab, int n, string *tab2)
{
for(int i=1; i {
for(int j=n-1; j>=1; j--)
{
if(tab[j] {
int bufor;
bufor=tab[j-1];
tab[j-1]=tab[j];
tab[j]=bufor;

            string bufor2;
            bufor2=tab2[j-1];
            tab2[j-1]=tab2[j];
            tab2[j]=bufor2;
        }
    }
}

}
[/bbone]

4 months later

Faktycznie, jakos sie zagapilem i nie moglem dojrzec ze za duzo wypisywalem, dzieki smile