Partage
  • Partager sur Facebook
  • Partager sur Twitter

salut tous les modes

Densité la plus proche france ioi

    12 août 2021 à 23:15:10

    jai bloque dans ce probleme en france ioi

    le probleme est :

    Lorsque des clients vous demandent des blocs de plastique d'une densité dont vous ne disposez pas, vous souhaitez pouvoir leur proposer un bloc d'une densité proche.

    Ecrivez un programme qui lit la description de votre bloc, puis répond aux questions de vos clients, en indiquant la densité de plastique la plus proche de celui demandé, pour lequel vous disposez d'au moins un bloc. S'il y a plusieurs densités aussi proches de celle demandée, donnez la plus petite (cela vous coûte moins cher).

    et voila mon code
    #include<bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(false);
        int n, m;
        cin>>n;
        vector<int>v;
        for(int i = 0; i < n; i++) {
            int val;
            cin>>val;
            v.push_back(val);
        }
        sort(v.begin(), v.end());
        cin>>m;
        for(int i = 0; i < m; i++) {
            int val;
            cin>>val;
            int j = 0;
            while(j < n && v[j] < val) 
                j++;
            if(j == 0)
                cout<<v[j]<<"\n";
            else if(v[j] == val)
                cout<<val<<"\n";
            else
                cout<<v[j - 1]<<"\n";
        }
    }
     mon code donne 8 test correctes sur 10 tests
    • Partager sur Facebook
    • Partager sur Twitter
      13 août 2021 à 1:41:59

      Tu dois traiter séparément les cas où j==0 (plus petit que le premier) et j==n (plus grand que le dernier)
      Dans les autres cas on demande le plus près, mais il peut être avant ou après la valeur associée à j.
      if val-v[j-1] <= v[j]-val)
       cout v[j-1] ...
      else
       cout v[j] ...
      Si je ne me suis pas trompé dans mes indices, ça devrait marcher ...

      -
      Edité par PierrotLeFou 13 août 2021 à 1:47:37

      • Partager sur Facebook
      • Partager sur Twitter

      Le Tout est souvent plus grand que la somme de ses parties.

      salut tous les modes

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown