Advertisement
bartekltg

bibl

Nov 4th, 2021 (edited)
1,010
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. #include <iostream>
  2. #include <unordered_map>
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7.     //Pierwsza ksiażka ma pozycję 0, ustawone po prawej maja pozycje bedaca
  8.         //kolejnymi liczbami dodatniki, po lewej ujemnymi.
  9.     uint64_t lewa=0, prawa=0; //Pozycja ksiazki najbardziej po prawej i lewej
  10.     unordered_map<uint64_t, int64_t> pozycja; //odwzorowanie id-ksiazki -> pozycja na polce
  11.  
  12.     uint64_t n;
  13.     char c;
  14.     uint64_t id;
  15.  
  16.     cin>>n;
  17.     cin>>c>>id;//pierwsza ksiazka
  18.  
  19.     pozycja.insert({id, 0}); //Pierwsza ksiazka, dostaje numer 0
  20.     n--;
  21.  
  22.     while (n-->0){
  23.         cin>>c>>id;
  24.         if ('R'==c){
  25.             prawa++;
  26.             pozycja.insert({id, prawa});  //zapisuję pozycje ksiazki o indeksie id
  27.         }else if('L'==c){
  28.             lewa--;
  29.             pozycja.insert({id, lewa});
  30.         }else{ /* c=='?' */
  31.             int64_t pozycja_ksiazki = pozycja[id]; //zagladam do notatek, gdzie stoi ksiazka id
  32.             cout<<min ( prawa - pozycja_ksiazki, pozycja_ksiazki -lewa )<<'\n';
  33.         }
  34.     }
  35.     return 0;
  36. }
  37.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement