Zadanie z olimpiady
Ostatnio zmodyfikowano 2017-10-08 14:47
milmega Temat założony przez niniejszego użytkownika |
Zadanie z olimpiady » 2017-10-08 12:07:19 Potrzebuję pomocy w zadaniu o treści: Lew składa się z n części, a każda część składa się z kilku segmentów. Segmenty ponumerowane są w następujący sposób: te należące do pierwszej części mają numery od 1 do a1, do drugiej - od a1+1 do a1+a2, itd. Do której części należy dany segment? Wejście W pierwszej linii wejścia dana jest liczba n (1 ≤ n ≤ 100 000) - liczba części lwa. W drugiej linii wejścia dane jest n liczb całkowitch: a2, a2, ..., an (1 ≤ ai ≤ 1 000 000). W trzeciej linii dana jest liczba q (1 ≤ q ≤ 100 000) - liczba zapytań o dane segmenty. W ostatniej linii dane jest q liczb całkowitych - zapytania o kolejne segmenty. Wyjście Dla każdego zapytania należy wypisać w osobnej linii odpowiedź - w której części znajduje się ten segment. Moj błędny kod poniżej. Potrzebuję wytłumaczenia co i dlaczego zrobiłem źle. #include<iostream> using namespace std;
int main() { int n, a, q, k; int m = 0; int s = 0; int j = 0; int segmenty = 0; cin >> n; int ele[ n ]; while( n != 0 ) { cin >> a; segmenty += a; ele[ m ] = a; m++; n--; } int tab[ segmenty ]; for( int i = 1; i <( n + 1 ); i++ ) { while( ele[ j ] != 0 ) { tab[ s ] = i; s++; ele[ j ] --; } j++; } cin >> q; while( q != 0 ) { cin >> k; cout << tab[ k ] << endl; q--; } return 0; }
|
|
Saran |
» 2017-10-08 12:30:12 Nazwy... Nazwy... Nazwy zmiennych, popraw proszę. |
|
Luq |
» 2017-10-08 12:43:33 Tak nie można tworzyć tablic w C++. Rozmiar musi być znany w czasie kompilacji. for( int i = 1; i <( n + 1 ); i++ )
W tym miejscu n ma wartość zero, więc pętla się nawet nie wykona. |
|
milmega Temat założony przez niniejszego użytkownika |
» 2017-10-08 12:56:12 Wiem, że nie powinno się nazywać zmiennych pojedynczymi literami, ale to są tylko iteratory, które chciałem mieć wszystkie w jednym miejscu. A co do pętli to dodałem i for( int i = 1; i <( kopiaN + 1 ); i++ ) |
|
Saran |
» 2017-10-08 14:47:30 int ele[ n ] A l b o 'n' musi być stałą, a l b o użyj pojemników dynamicznych, std::vector <> |
|
« 1 » |