Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PARKING
- #include <bits/stdc++.h>
- using namespace std;
- int koszt[ 110 ];
- int masa[ 2100 ];
- int pozycja[ 2100 ]; //gdzie jest zaparkowany
- int ile_wolnych;
- queue <int> kolejka;
- int drzewo[ 300 ];
- int pojemnosc[ 300 ];
- int Insert( ) //dodaje a do elementu najbardziej na lewo
- {
- int w = 1;
- while( pojemnosc[ w ] > 1 )
- {
- int lewy = 2 * w;
- int prawy = 2 * w + 1;
- if( pojemnosc[ lewy ] > drzewo[ lewy ] ) w = lewy;
- else if( pojemnosc[ prawy ] > drzewo[ prawy ] ) w = prawy;
- else return -1; //false - drzewo jest pelne
- }
- int wynik = w;
- while( w != 1 )
- {
- ++drzewo[ w ];
- w >>= 1;
- }
- --ile_wolnych;
- return wynik;
- }
- void Usun( int a )
- {
- while( a != 1 )
- {
- --drzewo[ a ];
- a >>= 1;
- }
- ++ile_wolnych;
- }
- int main()
- {
- int n, m, R = 1;
- scanf( "%d %d", &n, &m );
- ile_wolnych = n;
- while( R < n ) R <<= 1;
- for( int i = 0; i < n; ++i ) scanf( "%d", koszt + i );
- for( int i = 0; i < m; ++i ) scanf( "%d", masa + i );
- for( int i = R; i < 2 * R; ++i )
- pojemnosc[ i ] = 1;
- for( int i = R - 1; i > 0; --i ) pojemnosc[ i ] = pojemnosc[ 2 * i ] + pojemnosc[ 2 * i + 1 ];
- long long int wynik = 0;
- for( int q = 0; q < 2 * m; ++q )
- {
- int a;
- scanf( "%d", &a );
- if( a > 0 )
- {
- --a;
- //przyjazd
- if( ile_wolnych )
- {
- int miejsce = Insert( );
- pozycja[ a ] = miejsce - R;
- wynik += masa[ a ] * koszt[ pozycja[ a ] ];
- }
- else
- {
- kolejka.push( a );
- }
- }
- else
- {
- ++a;
- //odjazd
- a = -a;
- Usun( pozycja[ a ] + R );
- pozycja[ a ] = 0;
- if( !kolejka.empty() )
- {
- a = kolejka.front(); kolejka.pop();
- int miejsce = Insert( );
- pozycja[ a ] = miejsce - R;
- wynik += masa[ a ] * koszt[ pozycja[ a ] ];
- }
- }
- }
- printf("%lld", wynik );
- }
- KARTY
- #include <bits/stdc++.h>
- long double n, l;
- long double out;
- int main ()
- {
- scanf("%Lf%Lf", &n, &l);
- l /= 2;
- for(int i = 1; i <= n; i++)
- {
- out += l / i;
- }
- printf("%Lf\n", out);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement