Fatti:
A.
A.a. L'11 settembre 2018, con pubblicazione sul foglio ufficiale del Cantone Ticino n. 73/2018, l'Ente Ospedaliero Cantonale (di seguito: l'EOC o il committente) ha indetto un concorso, retto dalla legge ticinese sulle commesse pubbliche del 20 febbraio 2001 (LCPubb/TI; RL/TI 730.100) e impostato secondo la procedura selettiva, concernente l'aggiudicazione della fornitura di una soluzione per il suo nuovo sito web.
A.b. Il capitolato d'appalto prevedeva cinque criteri di aggiudicazione, tra i quali figurava segnatamente il criterio "a . Prezzo - Economicità ". Tale criterio era a sua volta suddiviso in due sottocriteri: " soluzione offerta sito web " e " manutenzione e supporto annuale ".
Per quanto qui di interesse, in merito al sottocriterio " manutenzione e supporto annuale ", gli atti di gara specificavano che nel prezzo offerto dovevano essere inclusi il " prezzo manutenzione annuale " e il " prezzo supporto LU-VE 08h00-17h00, presa a carico entro 4 ore ".
A.c. Dopo la fase di selezione, sono state inoltrate al committente sei offerte. In particolare, l'offerta della ditta B._ SA prevedeva un costo per " manutenzione e supporto annuale " pari a fr. 40'926.00. Per lo stesso sottocriterio, l'offerta della ditta A._ SA indicava un prezzo pari a fr. 1'938.60, precisando quanto segue:
Oggetto Descrizione Note 1 Prezzo manutenzione annuale Incluso manutenzione costante che comprende l'installazione rego lare dei più recenti aggiornamenti di sicurezza e l'ottimizzazione delle componenti impiegate, il monitoraggio costante e backup quotidiani 2 Prezzo supporto LU-VE 08h00-17h00, presa a carico entro 4 ore Si applica la tariffa oraria / giorna liera fr. 1'938.60
A.d. In sede di valutazione delle offerte, il committente ha chiesto chiarimenti alla A._ SA, invitandola a confermare che il prezzo di fr. 1'938.60 comprendeva sia la manutenzione annuale che il servizio di supporto nei giorni feriali. Il 4 novembre 2019, l'interessata ha risposto nel modo seguente (cfr. art. 105 cpv. 2 LTF) : " [...] confermiamo che l'importo di CHF 1'983.60 [recte: 1'938.60], IVA inclusa, comprende la manutenzione annuale come anche la garanzia di un supporto LU-VE 8h00-17h00 con una presa a carico in 4 ore così come da noi indicato nell'Allegato 2 - A. Economicità e prezzo. Per onestà intellettuale, e come da noi scritto sempre nell'Allegato 2 - A. Economicità e prezzo, il singolo intervento al di fuori di installazioni di sicurezza e [dell']ottimizzazione delle componenti già coperte dalla manutenzione annuale, è quantificato a regia secondo la nostra tariffa oraria / giornaliera pari a CHF 1'378.55 al giorno (CHF 172.30 all'ora), IVA inclusa, e indicata nell'Allegato 2 - E. Costo fisso singola giornata di sviluppo. In questo modo il cliente non paga fee annue per interventi non sostenuti ma semplicemente il dovuto per interventi straordinari. Tuttavia, qualora l'offerta di fatturazione a regia non fosse compatibile con le vostre esigenze e preferiste optare per una quotazione forfettaria possiamo proporvi, sulla base dell'esperienza maturata in analoghi contesti, un pacchetto ore a consumo a tariffa agevolata, come segue:
- Pacchetto di 80 ore a consumo a un prezzo di CHF 13'354.80, IVA inclusa (CHF 166.95 / ora);
- Pacchetto di 100 ore a consumo a un prezzo di CHF 16'155.00, IVA inclusa (CHF 161.55 / ora);
- Pacchetto di 180 ore a consumo a un prezzo di CHF 27'140.40, IVA inclusa (CHF 150.85 / ora). "
B.
B.a. Il 20 gennaio 2020, vagliata la situazione, l'EOC ha assegnato la commessa alla A._ SA, prima classificata con 85.64 punti.
B.b. Contro tale decisione di aggiudicazione, la B._ SA, seconda classificata con 76.94 punti, è insorta davanti al Tribunale cantonale amministrativo del Cantone Ticino (di seguito: il Tribunale amministrativo), postulando l'annullamento della decisione impugnata e l'aggiudicazione della commessa a suo favore.
B.c. Il 19 ottobre 2020, il Tribunale amministrativo ha accolto il ricorso, annullato la decisione di aggiudicazione del 20 gennaio 2020 e attribuito la commessa alla B._ SA. I Giudici cantonali hanno ritenuto, in sostanza, che l'offerta dell'aggiudicataria era viziata e inattendibile. Secondo la Corte cantonale, infatti, la A._ SA aveva chiaramente indicato nel modulo d'offerta che il servizio di supporto nei giorni feriali, il quale era parte integrante del sottocriterio " manutenzione e supporto annuale ", sarebbe stato fatturato a parte, applicando un onorario (orario o giornaliero) non precisato e non compreso nel prezzo globale. In siffatte circostanze, l'offerta della A._ SA avrebbe dovuto essere esclusa dalla gara, poiché indicava un prezzo che non comprendeva una prestazione richiesta nel bando di concorso. Constatando che nulla lasciava pensare che l'offerta della B._ SA non fosse conforme alle esigenze poste dalla legge e dal capitolato d'appalto, il Tribunale amministrativo le ha quindi attribuito direttamente la commessa.
C.
Il 20 novembre 2020, la A._ SA ha inoltrato dinanzi al Tribunale federale un ricorso in materia di diritto pubblico e un ricorso sussidiario in materia costituzionale con i quali domanda, protestate tasse, spese e ripetibili, l'annullamento della sentenza del Tribunale amministrativo del 19 ottobre 2020 e la conferma della decisione di aggiudicazione dell'EOC del 20 gennaio 2020.
Il Tribunale amministrativo si è riconfermato nelle motivazioni e nelle conclusioni della propria sentenza. L'EOC si è rimesso al giudizio di questa Corte. L'opponente ha presentato delle osservazioni e ha chiesto che il gravame venga dichiarato inammissibile, in via subordinata che venga respinto. La ricorrente ha replicato. L'opponente ha duplicato. L'Ufficio di vigilanza sulle commesse pubbliche non si è pronunciato.
Con decreto presidenziale del 17 dicembre 2020 è stato concesso l'effetto sospensivo al ricorso.
Diritto:
1.
Il Tribunale federale esamina d'ufficio la sua competenza (art. 29 cpv. 1 LTF) e verifica con piena cognizione l'ammissibilità dei gravami che gli vengono sottoposti (DTF 144 V 280 consid. 1).
1.1. La ricorrente ha presentato, in una sola e medesima istanza (cfr. art. 119 cpv. 1 LTF), un ricorso in materia di diritto pubblico e un ricorso sussidiario in materia costituzionale. Dal momento che quest'ultimo è proponibile unicamente nella misura in cui il ricorso ordinario è escluso (cfr. art. 113 LTF), appare opportuno esaminare in primo luogo l'ammissibilità del ricorso in materia di diritto pubblico.
1.1.1. In ambito di commesse pubbliche, il ricorso in materia di diritto pubblico è ammissibile solo se il valore stimato della commessa raggiunge il valore soglia determinante previsto dall'art. 83 lett. f cifra 2 LTF (fino al 31.12.2020: art. 83 lett. f cifra 1 LTF) e, cumulativamente, se la fattispecie pone una questione di diritto d'importanza fondamentale giusta l'art. 83 lett. f cifra 1 LTF (fino al 31.12.2020: art. 83 lett. f cifra 2 LTF). I due motivi di esclusione, sui quali compete al ricorrente pronunciarsi (art. 42 cpv. 2 LTF; DTF 138 I 143 consid. 1.1.2), sono cumulativi (DTF 144 II 184 consid. 1.2).
1.1.2. L'esistenza di una questione giuridica d'importanza fondamentale va ammessa in maniera restrittiva (DTF 141 II 113 consid. 1.4). Per ritenere adempiuto il presupposto dell'art. 83 lett. f cifra 1 LTF non è sufficiente che il Tribunale federale non abbia mai avuto modo di pronunciarsi sulla domanda che gli viene sottoposta, ma occorre inoltre che il problema giuridico sollevato sia suscettibile di ripresentarsi nei medesimi termini in altri casi analoghi, per cui la sua soluzione può fungere da riferimento per la prassi. La questione aperta o controversa, che dev'essere inerente all'ambito degli acquisti pubblici, deve poi avere portata tale da richiedere un chiarimento da parte della più alta istanza federale (cfr. DTF 141 II 113 consid. 1.4.1; sentenza 2D_24/2019 del 10 febbraio 2020 consid. 1.1.1).
1.1.3. La ricorrente insorge sostenendo che un committente ha la facoltà, a determinate condizioni, di chiedere delucidazioni supplementari a un offerente prima dell'aggiudicazione. A mente dell'interessata, gli effetti della risposta dell'offerente sulla decisione di aggiudicazione e sul margine di manovra del committente in tali casi non sarebbero chiari. L'insorgente chiede quindi al Tribunale federale di esprimersi sulla questione, che ritiene fondamentale siccome potrà ripresentarsi nei medesimi termini in svariati casi analoghi.
Contrariamente all'opinione della ricorrente, non siamo tuttavia nel caso in esame in presenza di una questione di diritto d'importanza fondamentale aperta o controversa, che necessita di un chiarimento. Il Tribunale federale ha infatti già esaminato a più riprese le condizioni e gli effetti della facoltà del committente di chiedere spiegazioni o complementi d'informazione agli offerenti, sottolineando in particolare l'importanza del rispetto, in tale frangente, del principio della parità di trattamento tra i concorrenti (cfr. sentenza 2D_45/2016 del 10 luglio 2017 consid. 5.1 e la giurisprudenza citata). Nella presente fattispecie, si tratta tutt'al più di applicare questi principi al caso concreto, ciò che esclude l'esistenza di una questione di diritto d'importanza fondamentale (cfr. sentenze 2C_951/2019 del 16 luglio 2020 consid. 1.3.4 e 2C_583/2017 del 18 dicembre 2017 consid. 1.3).
1.1.4. Non avendo la ricorrente indicato nessun'altra questione giuridica d'importanza fondamentale, il ricorso in materia di diritto pubblico è pertanto inammissibile, a prescindere dal raggiungimento o meno dei valori soglia richiesti dall'art. 83 lett. f cifra 2 LTF. Vanno dunque ora verificate le condizioni di ammissibilità del ricorso sussidiario in materia costituzionale interposto in parallelo dall'insorgente.
1.2. La sentenza impugnata ha annullato la decisione del 20 gennaio 2020 con la quale l'EOC aveva assegnato alla ricorrente la commessa concernente l'aggiudicazione della fornitura di una soluzione per il suo nuovo sito web. L'interessata può dunque prevalersi di un interesse legittimo a ricorrere (art. 115 LTF; cfr. sentenza 2D_24/2019 del 10 febbraio 2020 consid. 1.2).
1.3. Per il resto, interposto tempestivamente (art. 117 cum art. 100 cpv. 1 LTF) contro una decisione finale (art. 117 cum art. 90 LTF) di un tribunale cantonale superiore (art. 114 cum art. 86 cpv. 1 lett. d e cpv. 2 LTF), il ricorso sussidiario in materia costituzionale è ricevibile.
2.
Con il ricorso sussidiario in materia costituzionale può essere censurata unicamente la violazione di diritti costituzionali (art. 116 LTF). Tale questione non è inoltre esaminata d'ufficio; occorre che il ricorrente specifichi quali diritti fondamentali ritiene lesi ed esponga le sue censure in modo chiaro, circostanziato ed esaustivo (cfr. art. 106 cpv. 2 cum art. 117 LTF; DTF 141 I 36 consid. 1.3; sentenza 2C_337/2019 del 4 marzo 2021 consid. 2.1). Nell'ambito specifico delle commesse pubbliche è esclusa sia la semplice censura relativa ad una scorretta applicazione del diritto cantonale o intercantonale, sia quella relativa alla violazione dei principi di trasparenza e parità di trattamento degli offerenti, che sottendono tale normativa e ai quali non può essere riconosciuto il rango di garanzia costituzionale autonoma. Può per contro essere censurata un'applicazione arbitraria (art. 9 Cost.) del diritto cantonale e/o intercantonale degli acquisti pubblici, poiché gli offerenti dispongono di un interesse giuridicamente protetto a che la corrispondente legislazione venga rispettata (sentenze 2C_1078/2019 del 22 giugno 2021 consid. 3.3; 2C_825/2018 del 2 marzo 2021 consid. 4.1; 2D_17/2020 del 30 novembre 2020 consid. 2.1). Una decisione è arbitraria (art. 9 Cost.) quando è in manifesta contraddizione con la situazione di fatto, è gravemente lesiva di una norma o di un principio giuridico chiaro e indiscusso, oppure quando urta in modo scioccante il sentimento di giustizia ed equità. La decisione deve inoltre essere arbitraria nel suo risultato e non solo nella sua motivazione. Il semplice fatto che un'altra soluzione, diversa da quella adottata dall'autorità precedente, potrebbe entrare in linea di conto o sarebbe addirittura preferibile non costituisce arbitrio (DTF 144 I 318 consid. 5.4; 144 I 170 consid. 7.3).
3.
La ricorrente sostiene che la sua estromissione dalla commessa litigiosa sarebbe arbitraria (art. 9 Cost.), invocando in particolare un'applicazione insostenibile dell'art. 26 cpv. 2 LCPubb/TI. Le sue critiche in tal senso portano essenzialmente sull'interpretazione della sua offerta da parte del Tribunale amministrativo e sulla conformità della stessa al bando di concorso, per quanto riguarda segnatamente il prezzo relativo al sottocriterio " manutenzione e supporto annuale ".
A tal proposito, l'insorgente menziona anche un "accertamento dei fatti manifestamente errato" (ricorso, pag. 20 segg.). Per come è formulata e motivata, tale critica si confonde tuttavia con la censura di violazione del divieto di arbitrio esposta poc'anzi e non va dunque esaminata separatamente.
3.1. A titolo preliminare va rammentato che, in materia di commesse pubbliche, l'autorità giudiziaria esamina liberamente se il committente ha applicato in modo corretto la legislazione determinante. In tale contesto, quando il diritto materiale lascia a quest'ultimo un ampio potere di apprezzamento, ciò che è il caso in particolare nella fase di valutazione e di confronto delle offerte (DTF 141 II 353 consid. 3), il giudice deve tuttavia badare a non interferire indebitamente nella libertà di decisione del committente. L'autorità giudiziaria non deve infatti sostituire il proprio potere di apprezzamento a quello dell'ente appaltante riguardo all'aggiudicazione di una commessa pubblica, perché in tal caso adotterebbe un giudizio di opportunità esaminando l'adeguatezza della decisione, ciò che le è vietato dagli art. 16 cpv. 2 del Concordato intercantonale sugli appalti pubblici del 25 novembre 1994/15 marzo 2001 (CIAP; RL/TI 730.500) e 38 cpv. 2 LCPubb/TI (cfr. DTF 141 II 353 consid. 3; sentenza 2C_1078/2019 del 22 giugno 2021 consid. 5.2.3). Essa può quindi intervenire unicamente in caso di abuso o di eccesso del potere di apprezzamento da parte del committente, ciò che in pratica può essere equiparato a un controllo limitato all'arbitrio (cfr. DTF 141 II 353 consid. 3; sentenza 2D_35/2017 del 5 aprile 2018 consid. 5.1). Nell'ambito di un ricorso sussidiario in materia costituzionale, il Tribunale federale dovrebbe poi esaminare se l'autorità cantonale di ultima istanza abbia fatto uso in maniera insostenibile del proprio potere di cognizione limitato, ciò che, come appena illustrato, equivale ad un controllo limitato all'arbitrio. Ora, in questo contesto, il Tribunale federale evita la cosiddetta duplice limitazione del potere di esame ( "Willkür im Quadrat"; " arbitraire au carré ") ed esamina quindi liberamente se la Corte cantonale ha correttamente giudicato se il committente ha commesso abuso o eccesso del proprio potere d'apprezzamento; in altre parole, il Tribunale federale vaglia liberamente se i giudici cantonali hanno correttamente applicato la nozione di arbitrio (cfr. sentenze 2C_1078/2019 del 22 giugno 2021 consid. 5.2.1; 2C_825/2018 del 2 marzo 2021 consid. 8.2; 2D_35/2017 del 5 aprile 2018 consid. 5.1; 2D_42/2016 del 3 ottobre 2017 consid. 5.1).
3.2. Ai sensi dell'art. 26 LCPubb/TI, "gli offerenti devono inoltrare la loro offerta per iscritto, in modo completo e tempestivo e utilizzando i documenti di gara ufficiali messi a disposizione dal committente" (cpv. 1). Inoltre, "il committente esclude dalla procedura le offerte tardive o quelle che presentano lacune formali rilevanti" (cpv. 2).
3.3. Nella fattispecie, la ricorrente sostiene che il prezzo menzionato nella sua offerta per il sottocriterio " manutenzione e supporto annuale " (fr. 1'938.60) era un prezzo globale che comprendeva tutte le prestazioni richieste dal bando di concorso in relazione a tale sottocriterio. Sia la " manutenzione " del sito web che il " supporto " fornito dall'interessata al committente erano chiaramente comprese nel prezzo proposto. A mente dell'insorgente, la prestazione relativa al " supporto LU-VE 08h00-17h00, presa a carico entro 4 ore " comprendeva semplicemente il " servizio di reperibilità ", ossia " il mero fatto di essere reperibili per [il] committente " (ricorso, pag. 10) o, in altre parole, " la garanzia di un supporto LU-VE 08h00-17h00 " (ricorso, pag. 12). Se, in seguito a una richiesta da parte del committente, si fosse reso necessario un intervento per un supporto puntuale, si sarebbe allora trattato di " una prestazione oltre [la] manutenzione " che sarebbe stata fatturata a parte, a una tariffa giornaliera di fr. 1'378.55 (ricorso, pag. 11; cfr. supra lett. A.d). Sempre secondo la ricorrente, una siffatta prestazione non rientrava però nelle prestazioni richieste nel bando di concorso, di modo che il fatto di fatturarla a parte non significava in alcun modo che l'offerente aveva proposto un prezzo incompleto. Sulla scorta di tali elementi, l'insorgente ribadisce che, come risultava sia dall'offerta trasmessa al committente, sia dalla risposta del 4 novembre 2019 alle domande di chiarimento di quest'ultimo (cfr. supra lett. A.d), il prezzo indicato per il sottocriterio " manutenzione e supporto annuale " (fr. 1'938.60) era esaustivo e comprendeva tutte le prestazioni menzionate nel bando di concorso. La sua offerta non presentava quindi nessuna lacuna rilevante ai sensi dell'art. 26 cpv. 2 LCPubb/TI. Ritenendo - implicitamente - il contrario ed escludendola dalla gara per tale motivo, la Corte cantonale sarebbe dunque incorsa in arbitrio.
3.4. Il Tribunale amministrativo ha considerato che l'offerta della ricorrente prevedeva esplicitamente che il servizio di supporto durante i giorni feriali sarebbe stato fatturato a parte, secondo una tariffa oraria / giornaliera (fr. 1'378.55 al giorno, rispettivamente fr. 172.30 all'ora). Ciò risultava, oltre che dall'offerta stessa, anche dalle spiegazioni fornite dall'interessata nella sua risposta del 4 novembre 2019, nella quale quest'ultima, dopo aver inizialmente confermato che l'importo offerto (fr. 1'938.60) comprendeva anche il servizio di supporto, si era però contraddetta subito dopo, dichiarando invece che gli interventi di supporto sarebbero stati fatturati a parte. L'insorgente aveva in tal modo escluso dal prezzo proposto una prestazione richiesta nel bando di concorso. La Corte cantonale, pur non menzionando esplicitamente l'art. 26 LCPubb/TI, ha quindi ritenuto che l'offerta dell'aggiudicataria era viziata e, pertanto, andava esclusa dalla gara.
3.5. Interpretando nel modo illustrato poc'anzi il bando di gara e l'offerta della ricorrente, il Tribunale amministrativo ha correttamente applicato la nozione di arbitrio (cfr. supra consid. 3.1 in fine). In merito al sottocriterio " manutenzione e supporto annuale ", gli atti di gara specificavano infatti che nel prezzo offerto dovevano essere inclusi, oltre al " prezzo manutenzione annuale ", anche il " prezzo supporto LU-VE 08h00-17h00, presa a carico entro 4 ore ". Ora, il fatto atto di considerare - alla stregua della Corte cantonale - che quest'ultima prestazione doveva comprendere il servizio di supporto puntuale offerto dall'aggiudicataria al committente in caso di improvvisi problemi informatici al sito web oggetto della commessa (sito offline, problemi di connessione, pagine web che non si caricano o risultano introvabili, ecc.) appare perfettamente logico. Come correttamente ritenuto dal Tribunale amministrativo, è piuttosto il senso dato al bando di concorso dall'ente appaltante e dalla ricorrente ad essere insostenibile, in quanto in contrasto con il chiaro tenore letterale del bando di concorso. Se, come sostenuto dall'insorgente, il committente avesse davvero voluto indicare, con la frase " prezzo supporto LU-VE 08h00-17h00, presa a carico entro 4 ore ", il costo della semplice "reperibilità" dell'aggiudicataria, escludendo però il costo dell'intervento di supporto volto a risolvere un problema informatico, non si vede perché non lo avrebbe allora specificato. Come osservato a ragion veduta dall'opponente (cfr. risposta del 13 gennaio 2021, pag. 4), gli atti di gara non fanno menzione alcuna della semplice "reperibilità", rispettivamente della semplice "garanzia di un supporto", riferendosi invece al prezzo dell'intervento di supporto stesso (" prezzo supporto "), limitando quest'ultimo ai giorni feriali (" LU-VE 08h00-17h00 ") e sottoponendolo a un limite temporale (" presa a carico entro 4 ore "). Del resto, non si capisce a che scopo il committente avrebbe chiesto agli offerenti di proporre un prezzo comprendente la manutenzione e il supporto, se poi questo prezzo non doveva appunto includere anche il supporto concreto in caso di problemi. Infine, come rilevato in modo del tutto sostenibile dal Tribunale amministrativo, è la risposta della ricorrente del 4 novembre 2019 a fugare ogni dubbio. L'interessata vi afferma a chiare lettere che " il singolo intervento al di fuori di installazioni di sicurezza e [dell']ottimizzazione delle componenti già coperte dalla manutenzione annuale, è quantificato a regia secondo la nostra tariffa oraria / giornaliera pari a CHF 1'378.55 al giorno (CHF 172.30 all'ora) [...] in questo modo il cliente non paga fee annue per interventi non sostenuti ma semplicemente il dovuto per interventi straordinari " (cfr. supra lett. A.d). Da tale spiegazione, appare evidente che, nel prezzo proposto dalla ricorrente per la manutenzione e il supporto (fr. 1'938.60), non era compreso appunto proprio il servizio di supporto in caso di interventi puntuali dovuti a problemi nel sito web. Infatti, gli interventi di supporto non dovuti alle " installazioni di sicurezza " e all'" ottimizzazione delle componenti " erano fatturati a parte, al prezzo indicato dalla ricorrente (fr. 1'378.55 al giorno / fr. 172.30 all'ora).
Alla luce di quanto precede, ritenendo che l'offerta della ricorrente non comprendeva una prestazione (il servizio di supporto) che il bando di concorso chiedeva espressamente di includere nel prezzo offerto per il sottocriterio " manutenzione e supporto annuale ", e deducendone che questo rendeva l'offerta dell'insorgente viziata e inattendibile al punto da imporre la sua esclusione dalla gara, la Corte cantonale non ha ecceduto il proprio potere d'apprezzamento (cfr. supra consid. 3.1) e non ha applicato l'art. 26 LCPubb/TI in modo arbitrario. La censura formulata in tal senso dalla ricorrente non può quindi che essere respinta.
4.
La ricorrente invoca un'applicazione arbitraria degli art. 38 cpv. 2 LCPubb/TI e 16 cpv. 2 CIAP. A mente dell'insorgente, il Tribunale amministrativo avrebbe eseguito un "controllo di opportunità dell'offerta" vietato da tali disposizioni (ricorso, pag. 24 segg.).
4.1. Gli art. 16 cpv. 2 CIAP e 38 cpv. 2 LCPubb/TI, di identico tenore, prevedono che in un ricorso in materia di commesse pubbliche " non può essere addotto il motivo dell'inadeguatezza ".
4.2. Come esposto poc'anzi (consid. 3.5), il Tribunale amministrativo ha correttamente ritenuto che l'offerta della ricorrente non comprendeva una prestazione che il bando di concorso chiedeva esplicitamente di includere nel prezzo offerto e ha escluso l'aggiudicataria dalla gara per questo motivo, in applicazione (almeno implicita) dell'art. 26 LCPubb/TI. Così facendo, la Corte cantonale non si è pronunciata sull'opportunità della decisione del committente, ma ha al contrario accertato una violazione del diritto ad opera di quest'ultimo, conformemente a quanto gli art. 16 cpv. 1 lett. a CIAP e 38 cpv. 1 lett. a LCPubb/TI gli permettevano (e imponevano) di fare. La censura va dunque scartata.
5.
L'insorgente invoca una violazione del " principio della buona fede " e, in questo contesto, del " principio dell'affidamento " (cfr. ricorso, pag. 26 seg.). Tale critica, che verte essenzialmente sull'interpretazione che il Tribunale amministrativo avrebbe dovuto fare dell'offerta dell'interessata (in particolare per quanto riguarda il senso da dare alla nozione di " supporto ", che la ricorrente interpreta come semplice " garanzia di reperibilità "), si confonde tuttavia con la censura di arbitrio esaminata in precedenza e, come quest'ultima, va quindi respinta.
6.
Infine, la ricorrente lamenta una violazione del " principio di proporzionalità " e un " eccesso di formalismo " (ricorso, pag. 28 seg.). A suo avviso, la sua offerta sarebbe stata scartata dal Tribunale amministrativo unicamente a causa della nota " si applica la tariffa oraria / giornaliera ", da lei apposta accanto alla prestazione " prezzo supporto LU-VE 08h00-17h00, presa a carico entro 4 ore ". Si tratterebbe tuttavia di una " nota superflua ", di " un (eventuale) errore di compilazione ", che non giustificherebbe - nell'ottica del principio di proporzionalità e del divieto del formalismo eccessivo - l'esclusione della sua offerta dalla gara.
L'argomentazione non può essere condivisa, in quanto perde di vista che il Tribunale amministrativo non ha escluso la sua offerta dalla gara sulla base (unicamente) della "nota" in parola. Al contrario, la Corte cantonale è giunta a tale conclusione fondandosi sugli atti di gara (tra i quali figurava l'offerta della ricorrente contenente la nota in questione) e sulle spiegazioni fornite ulteriormente dall'interessata, dalle quali risulta del resto che la suddetta nota non derivava affatto da un errore, ma corrispondeva alla volontà dell'aggiudicataria di escludere - fatturandolo a parte - il servizio di supporto dal prezzo offerto per il sottocriterio " manutenzione e supporto annuale " (cfr. supra consid. 3.4). In siffatte circostanze, la sentenza impugnata non appare lesiva né del principio di proporzionalità (art. 5 cpv. 2 Cost.; su tale principio, che del resto non è un diritto costituzionale con portata propria, cfr. DTF 140 I 257 consid. 6.3.1), né del divieto del formalismo eccessivo (art. 29 cpv. 1 Cost.; in merito a tale nozione, cfr. sentenza 2C_54/2020 del 4 febbraio 2020 consid. 8.1).
7.
Per quanto precede, è a ragion veduta che il Tribunale amministrativo ha considerato che l'offerta della ricorrente andava esclusa dalla gara. Su questo punto, il ricorso si rivela dunque infondato.
8.
Dopo aver escluso dalla gara l'offerta della A._ SA, la Corte cantonale non ha rinviato l'incarto all'EOC per nuova decisione, ma ha invece attribuito direttamente la commessa alla B._ SA. Un tale modo di procedere è lecito, ma unicamente allorquando il Tribunale amministrativo " dispone degli elementi necessari " (art. 41 cpv. 1 LCPubb/TI) e a condizione che il contratto non sia ancora stato concluso (cfr. art. 41 cpv. 2 LCPubb/TI). Se accoglie il gravame, l'autorità cantonale di ricorso può decidere nel merito e attribuire direttamente la commessa solamente se la situazione è sufficientemente chiara (DTF 146 II 276 consid. 6; cfr. ETIENNE POLTIER, Droit des marchés publics, 2014, pag. 276). Alla luce dell'ampio potere di apprezzamento di cui gode il committente e del divieto fatto al giudice di decidere in opportunità (cfr. supra consid. 3.1), questa eventualità, non molto frequente (cfr. ETIENNE POLTIER, op. cit., pag. 276; MATTEO CASSINA, Principali aspetti del diritto delle commesse pubbliche nel Cantone Ticino, Atti della serata di studio del 23 ottobre 2008, pag. 67), dovrebbe inoltre restare eccezionale.
Nella fattispecie, il Tribunale amministrativo ha attribuito direttamente la commessa alla B._ SA ritenendo che la sua offerta era stata considerata idonea dal committente, il quale le aveva assegnato il secondo posto in graduatoria (sentenza impugnata, pag. 9 seg.). La ricorrente non censura questo modo di procedere, criticando unicamente l'esclusione della propria offerta dalla gara e limitandosi quindi a chiedere l'annullamento della sentenza impugnata e la conferma della decisione di aggiudicazione dell'EOC del 20 gennaio 2020. In particolare, l'interessata non contesta la graduatoria stilata dall'EOC, che aveva attribuito il secondo posto in classifica alla B._ SA. Neppure l'EOC, che si è rimesso al giudizio di questa Corte, si è opposto all'attribuzione diretta della commessa alla B._ SA operata dal Tribunale amministrativo. Va infine osservato che, data la domanda di effetto sospensivo presentata dalla B._ SA davanti alla Corte cantonale, quando quest'ultima si è pronunciata il contratto tra l'EOC e la A._ SA non era ancora stato concluso, di modo che la semplice constatazione del carattere illecito dell'aggiudicazione (cfr. MARTIN BEYELER, Öffentliche Beschaffung, Vergaberecht und Schadenersatz, 2004, n. 401 pag. 315) non entrava in considerazione.
In siffatte circostanze, le condizioni per attribuire eccezionalmente la commessa alla B._ SA in sede di ricorso erano adempiute. Anche su questo punto, il giudizio impugnato va dunque confermato.
9.
Per quanto precede, il ricorso in materia di diritto pubblico è inammissibile, mentre il ricorso sussidiario in materia costituzionale è infondato e va respinto.
Le spese giudiziarie seguono la soccombenza. Esse vengono pertanto poste, in ragione di un mezzo ciascuno, a carico della ricorrente e dell'Ente Ospedaliero Cantonale (cfr. art. 66 cpv. 1 e 4 LTF), in solido (art. 66 cpv. 5 LTF). Il committente, infatti, difende un interesse pecuniario (cfr. sentenza 2D_25/2018 del 2 luglio 2019 consid. 4, non pubblicato in DTF 145 II 249) e, dato che si è rimesso al giudizio di questa Corte, va considerato anch'esso soccombente. Sempre in ragione di un mezzo ciascuno, la ricorrente e l'Ente Ospedaliero Cantonale verseranno inoltre - in solido (cfr. art. 68 cpv. 4 LTF) - all'opponente, che, assistita da un avvocato, ha presentato delle osservazioni circostanziate e proposto il rigetto del gravame, un'indennità di fr. 3'000.-- per ripetibili della sede federale (cfr. art. 68 cpv. 1 e 2 LTF).
Per questi motivi, il Tribunale federale pronuncia:
1.
Il ricorso in materia di diritto pubblico è inammissibile.
2.
Il ricorso sussidiario in materia costituzionale è respinto.
3.
Le spese giudiziarie di fr. 2'500.-- sono poste, in solido, a carico della ricorrente e dell'Ente Ospedaliero Cantonale, in ragione di metà ciascuno.
4.
La ricorrente e l'Ente Ospedaliero Cantonale verseranno all'opponente, sempre in solido e in ragione di metà ciascuno, un'indennità di fr. 3'000.-- a titolo di ripetibili per la sede federale.
5.
Comunicazione ai patrocinatori della ricorrente, dell'opponente e dell'Ente Ospedaliero Cantonale, nonché al Tribunale amministrativo e all'Ufficio di vigilanza sulle commesse pubbliche del Cantone Ticino.