Wczytanie 60 000 liczb do tablicy

0

Witam , wykonuje zadanie na spoja i nie przechodzi mi testow, chodzi o to ze musze wczytac 60 000 liczb ciągu jednak maksymalnie wczytuje 32768 , nie wiem w czym problem o to wczytanie i link z ideone https://ideone.com/Ygalsv

 #include <iostream>
#include <cstdio>
using namespace std;
 
const int MAX = 10000000;
int  i;
int a[MAX];
 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
 
 
 
int main(int argc, char** argv)
{
fscanf(stdin, "%d", &a[0]);
i++;
 
while(!feof(stdin) ){
	fscanf(stdin, "%d", &a[i]);
i++;
 
}
 printf("%d",i);
}
 
 
1

main powinien wyglądać tak:

int main()
{
  // blok kodu
}

Co do problemu może spróbuj użyć unsigned albo dynamicznego alokowania pamięci. Programy testowane na spoju mają limit pamięci do wykorzystania.

0

Daj link do zadania, mam dziwne wrażenie że nie musisz. Swoją drogą podejrzewam że limit pamięci ci się wyczerpał, taka tablica trochę by jej zajeła

0
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
int main(){
    vector<int> tab;
    copy(
        istream_iterator<int>(cin),
        istream_iterator<int>(),
        back_inserter(tab)
    );
    return 0;
}
0

i nie jest zainicjalizowane wartością.

0

Jest zmienną globalną, więc choć to nieeleganckie, to jest zainicjowane 0.

2

Wczytywanie powinno wyglądać tak (pomijając użycie zmiennych globalnych).
https://ideone.com/Q6S3N9
Kod jest prawidłowy, problemem jest ograniczenia z ideone: https://ideone.com/faq

**Q: **Jaki jest limit długości kodu źródłowego, wejścia i wyjścia?
**A: ** 64 KB.

jedna cyfra + jedna spacja daje dwa bajnty na jedną daną wejściowa daje ograniczenie 64kB/2 = 2^15 = 32768 czyli wszystko się zgadza.

0

Zgadza sie to ograniczenia platformy

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