zadanie SPOJ - C

Odpowiedz Nowy wątek
Wielki Młot
2015-07-23 18:13
Wielki Młot
0

Zadanie :
http://pl.spoj.com/problems/PP0602D/

Moje wypociny :

int i, k, n, tab[10000];

scanf ("%d%d", &k, &n);
in=n%k;
for (i=0; i<k; ++i)
{
    if ((i+n)<k)
        scanf ("%d", &tab[i+n]);
    else
        scanf ("%d", &tab[i+n-k]);
}
for (i=0; i<k; ++i)
    printf ("%d ", tab[i]);

Dostaje komunikat o błędnej odpowiedzi, nie mam pojęcia gdzie jest błąd. PLEASE HELP

Pozostało 580 znaków

2015-07-23 18:34

Rejestracja: 6 lat temu

Ostatnio: 6 godzin temu

0

Popełniłeś taki błąd, że bez sensu nazywasz zmienne i jak nazwałbyś normalnie to sam byś znalazł miejsce gdzie jest coś nie tak.

#include <iostream>
using namespace std;

int znajdzIndeksDoWpisania(int i, int iloscWejsciowych, int oIlePrzesunac )
{
    int indeks;

    indeks = iloscWejsciowych - oIlePrzesunac + i;
    indeks %= iloscWejsciowych;

    return indeks;
}

int main() {
    int i, iloscWejsciowych, oIlePrzesunac, tab[10000];

    scanf ("%d%d", &iloscWejsciowych, &oIlePrzesunac);

    for (i=0; i<iloscWejsciowych; ++i)
    {
        int indeks = znajdzIndeksDoWpisania( i, iloscWejsciowych, oIlePrzesunac );

        scanf ("%d", &tab[indeks]);
    }
    for (i=0; i<iloscWejsciowych; ++i)
        printf ("%d ", tab[i]);
    return 0;
} 

http://ideone.com/mMASfQ

Mógłbyś też zmniejszyć trochę złożoność robiąc coś takiego

  1. Wczytaj do tablicy oIlePrzesunac liczb
  2. Wczytaj i od razu wypisz na wyjście iloscWejsciowych - oIlePrzesunac liczb
  3. Wypisz na wyjście oIlePrzesunac liczb, które są w tablicy

Pozostało 580 znaków

2015-07-23 19:13

Rejestracja: 6 lat temu

Ostatnio: 1 dzień temu

1

Jak w c++ Ci odpowiada, użyj std::rotate, i po problemie.

Pozostało 580 znaków

2015-07-23 20:27

Rejestracja: 12 lat temu

Ostatnio: 3 minuty temu

0
for (i=0; i<k; ++i)
    scanf ("%d", &tab[([i+n)%k]);

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Pozostało 580 znaków

Wielki Młot
2015-07-23 20:51
Wielki Młot
0

http://zapodaj.net/d55ee071b0f06.png.html

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0