fork(1) download
  1. #include<iostream>
  2. #include<iterator>
  3. #include<string>
  4. #include<chrono>
  5. #include<random>
  6. #include<functional>
  7. #include<algorithm>
  8. using namespace std;
  9.  
  10. struct rollrequest {int rolls,sides;};
  11. default_random_engine rengine(chrono::system_clock::now().time_since_epoch().count());
  12.  
  13. ostream& operator<<(ostream& out,const rollrequest& r) {
  14. uniform_int_distribution<int> d(1,r.sides);
  15. generate_n(ostream_iterator<int>(out," "),r.rolls,bind(d,rengine));
  16. return out;
  17. }
  18.  
  19. istream& operator>>(istream& in,rollrequest& r) {
  20. cin >> r.rolls;cin.ignore(); return cin >> r.sides;
  21. }
  22.  
  23. int main()
  24. {
  25. copy(
  26. istream_iterator<rollrequest>(cin),
  27. istream_iterator<rollrequest>(),
  28. ostream_iterator<rollrequest>(cout,"\n")
  29. );
  30. return 0;
  31. }
Success #stdin #stdout 0s 2856KB
stdin
4d4
10d6
3d20
4d8
stdout
2 1 2 4 
3 1 2 6 2 4 1 3 2 6 
9 3 7 
4 2 3 8