fork download
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std ;
  4. typedef long long ll ;
  5.  
  6. #define mv 2713
  7.  
  8. int C[3000][3000] ;
  9.  
  10. void preprocess(){
  11.  
  12. for(int i = 0 ; i < mv+5 ; i++) C[i][0] = 1 % mv ;
  13.  
  14. for(int i = 1 ; i < mv+5 ; i++)
  15. for(int j = 1 ; j <= i ; j++)
  16. C[i][j] = (C[i-1][j] + C[i-1][j-1]) % mv ;
  17.  
  18. }
  19.  
  20. vector <int> convert(ll n, ll base){
  21.  
  22. vector <int> num ; num.clear() ;
  23.  
  24. while(n){
  25. num.push_back( (int)(n % base) ) ;
  26. n /= base ;
  27. }
  28.  
  29. return num ;
  30.  
  31. }
  32.  
  33. void solve(){
  34.  
  35. ll n, r ; cin >> n >> r ;
  36. n = (n*(n-1)) / 2 ;
  37.  
  38. vector <int> n1 = convert(n, mv) , n2 = convert(r, mv) ;
  39.  
  40. int ans = 1 ;
  41. for(int i = 0 ; i < n1.size() ; i++){
  42. if(i >= n2.size()){
  43. break ;
  44. } else{
  45. ans = ( ans * C[ n1[i] ][ n2[i] ] ) % mv ;
  46. }
  47. }
  48.  
  49. cout << ans << "\n" ;
  50.  
  51. }
  52.  
  53. int main(){
  54.  
  55. #ifndef ONLINE_JUDGE
  56. freopen("input1.txt", "r", stdin) ;
  57. freopen("output.txt", "w", stdout) ;
  58. #endif
  59.  
  60. ios::sync_with_stdio(0) ; cin.tie(0) ; cout.tie(0) ;
  61.  
  62. preprocess() ;
  63.  
  64. int t ; cin >> t ;
  65. while(t--) solve() ;
  66.  
  67. return 0 ;
  68. }
  69.  
Success #stdin #stdout 0s 50392KB
stdin
3
3 2
5 0
100 1000
stdout
3
1
2667