In my opinion, the only differences of using using namespace std; and not using it, is that when you use it you might run into conflicts in your code variables later (clashing of names).
In addition it might contaminated someone else's namespace since when you use it you include everything in the namespace std so it's advisable not to you use it in header files. but it's up to you to use it in cpp files or not.
std::cin or cin, only difference is laziness imo. But using using namespace std; is valid.
EDIT: (For references and more clarification)
found those two references on the subject, i think you'll find the second one more helpful on why it's valid and works fine, but it's considered bad practice in some cases.
Please check cplusplus and stackoverflow
Quotes:
I recommend you avoid using directives; using declarations make a lot
more sense, although, personally, I would just rather use the fully
qualified name.
for example, you can use:
using std::cout;
using std::cin;
using std::endl;
instead of using the whole std.