Advertisement
Rana_093

Test Case Generator

Dec 11th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std ;
  4.  
  5. #define i64 long long int
  6. #define maxn 100005
  7. #define lim 100000LL
  8. #define IN freopen("input.txt","r",stdin)
  9. #define OUT freopen("RandomTestCase.txt","w",stdout)
  10.  
  11. i64 Random()
  12. {
  13.     mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
  14.     i64 val = rng()%lim ;
  15.     val = ( val +lim )%lim ;
  16.     return val ;
  17. }
  18.  
  19. map< pair<i64,i64> , i64 > M ;
  20.  
  21. int main()
  22. {
  23.     OUT ;
  24.     i64 i , j , k , l , m , n ;
  25.  
  26.     i64 tc = 20 , t=1 ;
  27.  
  28.     printf("%lld\n",tc) ;
  29.  
  30.     while( t++<=tc )
  31.     {
  32.         n = Random()%30 ; m = Random()%30;
  33.  
  34.         m = min( ((1LL)*n*(n-1))/2 , m ) ;
  35.  
  36.         printf("%lld %lld\n",n,m) ;
  37.  
  38.         for(i=1 ; i<=m ; i++)
  39.         {
  40.             i64 u = Random()%n + 1 , v = Random()%n + 1 , w = Random()%2 ;
  41.             if( u>v ) swap(u,v) ;
  42.             if( u==v || M.find( make_pair(u,v) ) != M.end() )
  43.             {
  44.                 i-- ;
  45.                 continue ;
  46.             }
  47.             printf("%lld %lld %lld\n",u,v,w) ;
  48.             M[ make_pair(u,v) ] = i ;
  49.         }
  50.         M.clear() ;
  51.     }
  52.  
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement