What do you do when you see someone litter on the subway or smoke in the park?

Today I was sitting on the subway, holding onto my backpack. Through my peripherals, I saw white, mashed up a ball drop onto the subway floor. I looked up at the man who dropped it: he looked to his right with his hands held in front of his lap. He pretended as if nothing happened!

Should I have told him, “Sir, you dropped your trash on the floor. You should pick it up.”? Though he didn’t look like someone who would beat me up if I said anything, I didn’t want to cause any trouble.

For example, one professor of mine told a man in Central Park to not smoke (because since May 23, 2011, it has been illegal to smoke in NYC parks). The man told him to “f you, and his dog.” Yeah… not exactly the most friendly thing you’ll see.

So who should enforce these public rules? Should laypeople like us, or should there be specific people who enforce these rules?