Ο λόγος που στους διαγωνισμούς δηλώνουμε τεράστιους πίνακες εξαρχής είναι αρκετά απλός. Το χρονικό όριο είναι ίδιο και για τα μικρά και για τα μεγάλα testcases. Επομένως δε μας πειράζει να μην είναι τέλειος ο κώδικάς μας για τα μικρά testcases, γιατί έτσι κι αλλιώς αυτά θα τα περάσουμε. Ενώ για τα μεγάλα ο κώδικας αυτός είναι οκ.
Σε κάθε περίπτωση μη σκέφτεσαι καθόλου τέτοιες λεπτομέρειες, όπως και το αν είναι καλύτερο το array ή το vector. Καλύτερο είναι το array (το vector υλοποιείται χρησιμοποιώντας arrays). Βέβαια το vector έχει μερικούς αλγορίθμους υλοποιημένους με πολύ έξυπνο τρόπο. Μπορείς κι εσύ να το πετύχεις με arrays, αλλά αν δεν προσέξεις δε θα τα καταφέρεις τόσο καλά. Οπότε για τέτοιες περιπτώσεις, βολεύουν περισσότερο τα vectors. Αλλά η διαφορά είναι τόσο μικρή, που δεν αξίζει να το σκέφτεσαι, χρησιμοποίησε όποιο αγαπάς.
Και για να γίνω πιο συγκεκριμένος για το τι είναι σημαντικό και τι όχι, δες αυτό το άρθρο:
https://discrete.gr/complexity/?el
Στην ουσία ό,τι ρώτησες δεν αλλάζει την πολυπλοκότητα του αλγορίθμου, άρα δε μας πειράζει.
Σαν τελική σημείωση, τα χρονικά όρια που μπαίνουν στους διαγωνισμούς είναι πάντα τέτοια ώστε αν έχεις τη σωστή πολυπλοκότητα να περνάς, όοοοο,τι και να έχεις κάνει (δήλωση μεγάλου array, χρήση vector αντί για array, κλπ κλπ). Αυτά τα πολύ πολύ να στοιχήσουν πχ 0.01 δευτερόλεπτο.
Ελπίζω να μη σε μπέρδεψα περισσότερο