Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.96 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <iomanip>
  5. #include <tuple>
  6. #include <math.h>
  7. #include <set>
  8. #include <stack>
  9. #include <map>
  10. #include <queue>
  11. #include <random>
  12. #define DEBUG
  13. #define pqueue priority_queue
  14. #define pb(x) push_back(x)
  15. //#define endl "\n"
  16. #define all(x) x.begin(), x.end()
  17. #define int long long
  18. //#define x first;
  19. //#define y second;
  20.  
  21. using namespace std;
  22.  
  23. typedef long long ll;
  24. typedef unsigned long long ull;
  25. typedef long double ld;
  26. typedef vector<int> vi;
  27. typedef vector<vector<int>> vvi;
  28. typedef vector<ull> vull;
  29. typedef vector<ll> vll;
  30. typedef tuple<int, int, int> tiii;
  31. typedef pair<int, int> pii;
  32. typedef vector<pair<int, int>> vpii;
  33. typedef vector<bool> vb;
  34. typedef vector<string> vs;
  35. typedef vector< vector<int>> vvi;
  36. typedef vector<char> vc;
  37.  
  38. const int INF = 1e9;
  39. const ll INFLL = 1e12;
  40. const int MOD = 1000000007;
  41. const ld eps = 1e-7;
  42. const int MOD2 = (1<<30)+1;
  43.  
  44. void fast_io(){
  45.     ios_base::sync_with_stdio(0);
  46.     cin.tie(NULL);
  47.     cout.tie(NULL);
  48. #ifdef DEBUG
  49. #else
  50.     freopen("lcs.in", "r", stdin);
  51.     freopen("lcs.out", "w", stdout);
  52. #endif
  53. }
  54.  
  55. int dp[500][500][64];
  56.  
  57. signed main() {
  58.     fast_io();
  59.     int n, m;
  60.     cin >> n >> m;
  61.     for (int i = 0; i < n; ++i) {
  62.         for (int j = 0; j < n; ++j) {
  63.             cin >> dp[j][i][0];
  64.             dp[j][i][0]--;
  65.         }
  66.     }
  67.     for(int k=1; k<=63; k++){
  68.         for (int i = 0; i < n; ++i) {
  69.             for (int j = 0; j < n; ++j) {
  70.                 dp[i][j][k] = dp[dp[i][j][k-1]][i][k-1];
  71.             }
  72.         }
  73.     }
  74.     for(int i=0; i<m; i++){
  75.         int x, y, k;
  76.         cin >> x >> y >> k;
  77.         x--; y--;
  78. //        k--;
  79.         for(int j=63; j>=0; j--){
  80.             if(pow(2, j)<=k){
  81.                 int beta = x;
  82.                 x = dp[x][y][j];
  83.                 y = beta;
  84.                 k -= pow(2, j);
  85.             }
  86.         }
  87.         cout << x+1 << endl;
  88.     }
  89.     return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement