Faits:
Faits:
A. Par jugement du 4 décembre 2003, le Tribunal correctionnel de l'arrondissement de l'Est vaudois a condamné X._, ressortissant albanais né en 1978, pour abus de la détresse, rupture de ban, blanchiment d'argent, infraction à la loi fédérale sur le séjour et l'établissement des étrangers (LSEE) et infraction grave à la loi fédérale sur les stupéfiants (LStup), à onze ans de réclusion, sous déduction de 898 jours de détention préventive, et a ordonné son expulsion à vie du territoire suisse. Par le même jugement, le tribunal a aussi condamné Y._, ressortissant albanais né en 1976, pour blanchiment d'argent, infraction à la LSEE et infraction grave à la LStup, à onze ans de réclusion, sous déduction de 898 jours de détention préventive, et l'a expulsé du territoire suisse pour quinze ans. Il ressort notamment ce qui suit de ce jugement:
X._ et Y._ ont participé à un important trafic de stupéfiants dans la région de Vevey. Après avoir mélangé de l'héroïne avec des produits de coupage et l'avoir répartie en sachet de 5 grammes, ils ont revendu la drogue directement ou par l'intermédiaire de jeunes albanais recrutés en Italie. Ils ont ainsi mis sur le marché au moins 4'260 grammes d'héroïne coupée. Ils ont également acquis 50 grammes de cocaïne et en ont vendu une quinzaine de grammes; le solde a été séquestré.
A une reprise au moins, X._ a profité de la situation financière précaire et de l'état de manque de la dénommée Z._ pour entretenir avec elle des relations sexuelles dans la cage d'escalier d'un immeuble, en échange de quoi il lui a remis 10 grammes d'héroïne. Il a également profité de la toxicomanie de B._ pour obtenir de celle-ci une fellation, en échange d'un rabais de 100 francs sur 5 grammes d'héroïne.
En ce qui concerne les antécédents, X._ a été condamné le 28 août 1998 par le Tribunal correctionnel de Lausanne, pour infraction et contravention à la LStup, à huit mois d'emprisonnement et à cinq ans d'expulsion du territoire suisse. Il a ainsi été renvoyé dans son pays en novembre 1998. Il est revenu en Suisse un mois plus tard. Le Procureur général du canton de Genève l'a condamné le 15 décembre 1998, pour vol, dommages à la propriété, violation de domicile et rupture de ban, à quatre mois d'emprisonnement et à sept ans d'expulsion. Quant à Y._, ses casiers judiciaires suisse et italien ne comportent aucune inscription.
En ce qui concerne les antécédents, X._ a été condamné le 28 août 1998 par le Tribunal correctionnel de Lausanne, pour infraction et contravention à la LStup, à huit mois d'emprisonnement et à cinq ans d'expulsion du territoire suisse. Il a ainsi été renvoyé dans son pays en novembre 1998. Il est revenu en Suisse un mois plus tard. Le Procureur général du canton de Genève l'a condamné le 15 décembre 1998, pour vol, dommages à la propriété, violation de domicile et rupture de ban, à quatre mois d'emprisonnement et à sept ans d'expulsion. Quant à Y._, ses casiers judiciaires suisse et italien ne comportent aucune inscription.
B. Par arrêt du 11 mars 2004, la Cour de cassation pénale du Tribunal cantonal vaudois a rejeté le recours de X._ et a confirmé le jugement de première instance. Par le même arrêt, elle a aussi rejeté le recours de Y._.
B. Par arrêt du 11 mars 2004, la Cour de cassation pénale du Tribunal cantonal vaudois a rejeté le recours de X._ et a confirmé le jugement de première instance. Par le même arrêt, elle a aussi rejeté le recours de Y._.
C. X._ forme un recours de droit public et un pourvoi en nullité au Tribunal fédéral contre cet arrêt. Il conclut à son annulation et sollicite par ailleurs l'assistance judiciaire.
La Cour de cassation vaudoise s'est référée à son arrêt. Le Ministère public vaudois conclut au rejet du recours de droit public en se référant à l'arrêt attaqué.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. Conformément à l'art. 275 al. 5 PPF, le recours de droit public est examiné en premier lieu.
I. Recours de droit public
I. Recours de droit public
2. 2.1 Le recours de droit public au Tribunal fédéral est ouvert contre une décision cantonale pour violation des droits constitutionnels des citoyens (art. 84 al. 1 let. a OJ). Il n'est en revanche pas ouvert pour se plaindre d'une violation du droit fédéral, qui peut donner lieu à un pourvoi en nullité (art. 269 al. 1 PPF); un tel grief ne peut donc pas être invoqué dans le cadre d'un recours de droit public, qui est subsidiaire (art. 84 al. 2 OJ; art. 269 al. 2 PPF).
2.2 En vertu de l'art. 90 al. 1 let. b OJ, l'acte de recours doit, à peine d'irrecevabilité, contenir un exposé succinct des droits constitutionnels ou des principes juridiques violés et préciser en quoi consiste la violation. Saisi d'un recours de droit public, le Tribunal fédéral n'a donc pas à vérifier de lui-même si la décision attaquée est en tous points conforme au droit ou à l'équité. Il n'examine que les griefs d'ordre constitutionnel invoqués et suffisamment motivés dans l'acte de recours. Le recourant ne saurait se contenter de soulever de vagues griefs ou de renvoyer aux actes cantonaux (<ref-ruling> consid. 1.6 p. 189, 113 consid. 2.1 p. 120; <ref-ruling> consid. 1c p. 76). Le Tribunal fédéral n'entre pas non plus en matière sur les critiques de nature appellatoire (<ref-ruling> consid. 1b p. 495).
2.2 En vertu de l'art. 90 al. 1 let. b OJ, l'acte de recours doit, à peine d'irrecevabilité, contenir un exposé succinct des droits constitutionnels ou des principes juridiques violés et préciser en quoi consiste la violation. Saisi d'un recours de droit public, le Tribunal fédéral n'a donc pas à vérifier de lui-même si la décision attaquée est en tous points conforme au droit ou à l'équité. Il n'examine que les griefs d'ordre constitutionnel invoqués et suffisamment motivés dans l'acte de recours. Le recourant ne saurait se contenter de soulever de vagues griefs ou de renvoyer aux actes cantonaux (<ref-ruling> consid. 1.6 p. 189, 113 consid. 2.1 p. 120; <ref-ruling> consid. 1c p. 76). Le Tribunal fédéral n'entre pas non plus en matière sur les critiques de nature appellatoire (<ref-ruling> consid. 1b p. 495).
3. Le recourant se plaint de l'établissement des faits. Il invoque à ce propos la violation de la présomption d'innocence (ou de la maxime "in dubio pro reo") et l'arbitraire dans l'appréciation des preuves.
Consacrée par les art. 32 al. 1 Cst. et 6 par. 2 CEDH, la présomption d'innocence interdit au juge de prononcer une condamnation alors qu'il éprouve des doutes sur la culpabilité de l'accusé. Des doutes abstraits ou théoriques, qui sont toujours possibles, ne suffisent cependant pas à exclure une condamnation. Pour invoquer utilement la présomption d'innocence, le condamné doit donc démontrer que le juge de la cause pénale, à l'issue d'une appréciation exempte d'arbitraire de l'ensemble des preuves à sa disposition, aurait dû éprouver des doutes sérieux et irréductibles au sujet de la culpabilité (<ref-ruling> consid. 2 p. 40; <ref-ruling> consid. 2a p. 87/88; <ref-ruling> consid. 2e p. 38, consid. 4b p. 40).
Une décision est arbitraire, donc contraire à l'art. 9 Cst., lorsqu'elle contredit d'une manière choquante le sentiment de la justice et de l'équité. Le Tribunal fédéral n'invalide l'appréciation retenue par le juge de la cause que si elle apparaît insoutenable, en contradiction manifeste avec la situation effective ou adoptée sans motifs objectifs. Il ne suffit pas que les motifs du verdict soient insoutenables; il faut en outre que l'appréciation soit arbitraire dans son résultat (<ref-ruling> consid. 4 p. 58).
En matière d'appréciation des preuves et d'établissement des faits, la décision n'est arbitraire que si le juge n'a manifestement pas compris le sens et la portée d'un moyen de preuve, s'il a omis, sans raison sérieuse, de tenir compte d'un moyen important propre à modifier la décision attaquée ou encore si, sur la base des éléments recueillis, il a fait des déductions insoutenables (<ref-ruling> consid. 2.1 p. 9).
En matière d'appréciation des preuves et d'établissement des faits, la décision n'est arbitraire que si le juge n'a manifestement pas compris le sens et la portée d'un moyen de preuve, s'il a omis, sans raison sérieuse, de tenir compte d'un moyen important propre à modifier la décision attaquée ou encore si, sur la base des éléments recueillis, il a fait des déductions insoutenables (<ref-ruling> consid. 2.1 p. 9).
4. 4.1 Le recourant conteste d'abord avoir acheté 5 kilos d'héroïne comme cela ressort de l'arrêt attaqué (p. 2). Cette quantité ne repose selon lui sur aucun élément probant.
La critique est infondée. Il ressort certes de l'arrêt attaqué que le recourant a acquis 5 kilos d'héroïne. Toutefois, le passage incriminé est incomplet en raison d'une inadvertance rédactionnelle. Ce passage n'est en effet pas censé s'écarter du jugement de première instance, mais doit uniquement en reprendre la substance. L'arrêt attaqué le précise expressément en introduction de l'exposé des faits. Or, le jugement de première instance (p. 12) mentionne simplement que, selon l'ordonnance de renvoi, le recourant et son coaccusé Y._ ont acquis 5 kilos d'héroïne. En revanche, il n'en ressort pas que le contenu de ladite ordonnance de renvoi est tenu pour établi en ce qui concerne les 5 kilos d'héroïne. Au contraire, le Tribunal correctionnel s'est déclaré convaincu que le recourant était impliqué pour 4'260 grammes d'héroïne (cf. jugement de première instance, p. 15). C'est la même quantité qui est prise en considération dans l'arrêt attaqué (p. 9/10). Il n'apparaît donc pas, malgré l'inadvertance rédactionnelle en page 2 de l'arrêt attaqué, qu'une quantité de 5 kilos d'héroïne aurait été imputée au recourant.
4.2 Le recourant conteste avoir vendu 4'260 grammes d'héroïne, n'admettant que 2'895 grammes au plus.
Selon les aveux du recourant juste après son arrestation, il a revendu entre 3,8 et 4,3 kilos d'héroïne. Lors des auditions ultérieures, le recourant est revenu sur ses déclarations initiales et a uniquement reconnu un trafic portant sur 2'895 grammes. Le Tribunal correctionnel a prêté foi aux premières déclarations du recourant. Il a à cet égard exposé que le recourant avait initialement fourni des indications claires et que la diminution de la quantité trafiquée résultait de sa conscience progressive des enjeux judiciaires. Ces explications sont convaincantes. Le recourant se contente de leur opposer sa propre version au travers d'une libre discussion des faits. L'argumentation qu'il développe est appellatoire, partant, irrecevable (consid. 2.2).
Le recourant s'en prend en outre à la quantité retenue de 4'260 grammes. La Cour de cassation vaudoise a admis que le Tribunal correctionnel n'avait pas précisé comment il parvenait à ce chiffre. Elle a ainsi complété l'état de fait en application des art. 433a al. 1 et 444 al. 2 du Code de procédure pénal vaudois et a fourni le détail du calcul aboutissant à 4'260 grammes. Le recourant laisse entendre que la Cour de cassation vaudoise n'était pas légitimée à compléter les faits. Il ne consacre toutefois aucun développement au contenu des normes cantonales de procédure ni ne dit précisément en quoi elles auraient été arbitrairement appliquées. La motivation présentée est insuffisante au regard des exigences minimales de l'art. 90 al. 1 let. b OJ. Elle est irrecevable.
Le recourant met encore en cause l'un des éléments du calcul pris en compte par la Cour de cassation vaudoise (27,4 grammes séquestrés à Vevey). L'argument tombe à faux. En effet, la quantité de drogue en cause perd de l'importance pour fixer la peine lorsque, comme c'est le cas en l'espèce, la limite du cas grave est déjà largement dépassée (<ref-ruling> consid. 2b/aa p. 196). Le fait qu'une éventuelle erreur pourrait conduire à retrancher quelques grammes n'est par conséquent de toute façon pas de nature à faire apparaître la solution retenue comme arbitraire dans son résultat.
Le recourant met encore en cause l'un des éléments du calcul pris en compte par la Cour de cassation vaudoise (27,4 grammes séquestrés à Vevey). L'argument tombe à faux. En effet, la quantité de drogue en cause perd de l'importance pour fixer la peine lorsque, comme c'est le cas en l'espèce, la limite du cas grave est déjà largement dépassée (<ref-ruling> consid. 2b/aa p. 196). Le fait qu'une éventuelle erreur pourrait conduire à retrancher quelques grammes n'est par conséquent de toute façon pas de nature à faire apparaître la solution retenue comme arbitraire dans son résultat.
5. Le recourant conteste avoir abusé de Z._. Il souligne que, lors des débats, celle-ci a déclaré n'avoir "jamais entretenu de relations sexuelles avec [lui]". Cette déclaration a été verbalisée (cf. jugement de première instance, p. 6).
Le Tribunal correctionnel a déduit d'une écoute téléphonique, qui concernait une dénommée Caroline, que le recourant envisageait concrètement de pouvoir abuser sexuellement de toxicomanes. Il a jugé qu'il n'avait aucune raison de mettre en doute les déclarations de B._ et Z._. Il n'a accordé aucun crédit à la rétractation de Z._ aux débats. La Cour de cassation vaudoise a de son côté admis que l'écoute téléphonique n'apportait pas la preuve que le recourant était passé à l'acte, mais qu'elle était révélatrice de l'attitude du recourant. Elle a noté que la rétractation de Z._ aux débats n'était qu'un élément parmi d'autres et que les déclarations de celle-ci et de B._ avaient été concordantes de sorte qu'il n'était pas d'arbitraire de conclure que le recourant avait obtenu les faveurs sexuelles de Z._ contre de la drogue.
Comme l'a observé la Cour de cassation vaudoise, l'écoute téléphonique ne démontre pas l'existence d'un abus sur Z._. B._ a quant à elle été abusée séparément et il n'a pas été constaté que ses déclarations concernaient d'une quelconque manière Z._. Il apparaît donc que la condamnation du recourant pour abus de la détresse (<ref-law>) au détriment de Z._ repose essentiellement, voire exclusivement, sur les accusations de celle-ci durant l'instruction. Or, Z._ est revenue sur ses accusations aux débats. Il s'agit là d'un élément dont l'importance saute aux yeux. Le procès-verbal des débats mentionne uniquement, sans autre précision, que Z._ a déclaré n'avoir pas entretenu de relations sexuelles avec le recourant. Les considérants du jugement de première instance ne sont pas plus étoffés. En particulier, le Tribunal correctionnel ne dit rien, alors que ceci était pourtant primordial, sur les raisons du revirement. Il se borne à le considérer comme non crédible, mais n'indique pas pourquoi ni ne justifie son choix de préférer la première déclaration. Dans ces conditions, l'appréciation des preuves ne peut qu'être qualifiée d'insoutenable. Sur ce point, le recours doit être admis.
Comme l'a observé la Cour de cassation vaudoise, l'écoute téléphonique ne démontre pas l'existence d'un abus sur Z._. B._ a quant à elle été abusée séparément et il n'a pas été constaté que ses déclarations concernaient d'une quelconque manière Z._. Il apparaît donc que la condamnation du recourant pour abus de la détresse (<ref-law>) au détriment de Z._ repose essentiellement, voire exclusivement, sur les accusations de celle-ci durant l'instruction. Or, Z._ est revenue sur ses accusations aux débats. Il s'agit là d'un élément dont l'importance saute aux yeux. Le procès-verbal des débats mentionne uniquement, sans autre précision, que Z._ a déclaré n'avoir pas entretenu de relations sexuelles avec le recourant. Les considérants du jugement de première instance ne sont pas plus étoffés. En particulier, le Tribunal correctionnel ne dit rien, alors que ceci était pourtant primordial, sur les raisons du revirement. Il se borne à le considérer comme non crédible, mais n'indique pas pourquoi ni ne justifie son choix de préférer la première déclaration. Dans ces conditions, l'appréciation des preuves ne peut qu'être qualifiée d'insoutenable. Sur ce point, le recours doit être admis.
6. Le recourant invoque encore une application arbitraire de l'art. 373 let. a du Code de procédure pénal vaudois ainsi qu'une violation des art. 6 CEDH et 29 Cst. Il est d'avis que son expulsion à vie du territoire suisse est insuffisamment motivée.
L'argumentation présentée revient en réalité à se plaindre de l'application de l'art. 55 al. 1 2ème phrase CP, soit une norme de droit pénal fédéral. Un tel grief est irrecevable dans un recours de droit public (consid. 2.1).
L'argumentation présentée revient en réalité à se plaindre de l'application de l'art. 55 al. 1 2ème phrase CP, soit une norme de droit pénal fédéral. Un tel grief est irrecevable dans un recours de droit public (consid. 2.1).
7. Le recours doit être partiellement admis (consid. 5). Il ne sera pas perçu de frais et le canton de Vaud versera au recourant une indemnité de dépens (art. 159 al. 1 OJ). La requête d'assistance judiciaire n'a ainsi plus d'objet.
II. Pourvoi en nullité
II. Pourvoi en nullité
8. A la suite de l'admission partielle du recours de droit public, le pourvoi en nullité, qui porte sur la fixation de la peine et sur la durée de l'expulsion, n'a plus d'objet en l'état et la cause doit être rayée du rôle, sans frais ni indemnité. La requête d'assistance judiciaire est rejetée, le recourant assumant le risque que son pourvoi n'ait plus d'objet.

Par ces motifs, le Tribunal fédéral prononce:
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours de droit public est partiellement admis et l'arrêt attaqué est annulé.
1. Le recours de droit public est partiellement admis et l'arrêt attaqué est annulé.
2. Le pourvoi en nullité est sans objet et la cause est rayée du rôle.
2. Le pourvoi en nullité est sans objet et la cause est rayée du rôle.
3. La requête d'assistance judiciaire est rejetée en ce qui concerne le pourvoi en nullité. Elle est sans objet s'agissant du recours de droit public.
3. La requête d'assistance judiciaire est rejetée en ce qui concerne le pourvoi en nullité. Elle est sans objet s'agissant du recours de droit public.
4. Il n'est pas perçu de frais et le canton de Vaud versera une indemnité de 2'000 francs au recourant à titre de dépens pour le recours de droit public.
4. Il n'est pas perçu de frais et le canton de Vaud versera une indemnité de 2'000 francs au recourant à titre de dépens pour le recours de droit public.
5. Le présent arrêt est communiqué en copie à la mandataire du recourant, au Ministère public du canton de Vaud et au Tribunal cantonal vaudois, Cour de cassation pénale.
Lausanne, le 16 août 2004
Au nom de la Cour de cassation pénale
du Tribunal fédéral suisse
Le président: Le greffier: