Activists have staged a demonstration on a Rio de Janeiro beach strewn with sewage and trash to protest authorities' failure to meet promises to clean up the city's waters ahead of the 2016 Olympic games.

Protesters gathered Saturday on Rio's Botafogo Beach, in the Guanabara Bay near where Olympic sailing events are to be held. They unfurled a banner reading "One billion dollars and it's still disgusting." A kayaker plied the brackish waters with a toilet atop his craft.

With poor sanitation and garbage collection systems, much of the sewage and trash in this city of 12 million is swept into rivers that flow onto the city's famous beaches, lakes, lagoons and Guanabara Bay.

Authorities have acknowledged their Olympic cleanup pledges won't be met.