Problem p03422 (C++)

Buggy submission (status: Time Limit Exceeded):
//                                       _____   ---===--   _____
//                             .    ''                              ``  -.
//                      .  '                                                  `
//                      .
//                   .'       _ _  _ ` .
//                 /  ' '                 ''    -- . `\
//                |                                      ` -. /\
//                 \ ______  -----   ____                       ` -. .'|_
//                  \\mmmNNNNNNNNNNNNmm==____`   - . _                `.`  -
//                  .......  - '  . ' |
//                   |"""""""""""""MNNNNNNNNNNNNNNNm==___ `  -  . _
//                   \   .---====-- .. '     |
//                   -''''''''''' `   -  __   '"""MMNNNNNNNNNNNmm===______ "| __
//                   | | NN) (
//                 / ::::::::::::::::::::::::::`  -  .  __
//                 '"""MNNNNNNNNNNNNN\   (NNN*  | |__...J
//               /  ::::::::::::::::::::::::::::::::::::::::::` -  .  __ '"""\
//               . ''|      ` .
//             /    :::::::::::::::::::::::::::::::::::::::::::::::::::  '''' /
//             -- ' /  |::\  \ ,)   `.
//            /    ::'   ':::::::::/:::::::::::::::::::::''::  :::   ::::::::/
//            ( /   |:::\   "" _. ''
//           /    ::'   :/:'  ::  /    :::::    :::     :. .::\:::::::::::::< _
//           /::::::\  /\
//          / .:::::::::/::...:. / :::::....:::::::::::::::\:::::::::::::::\:`:-
//          /::::\::::`:N\
//         /
//         ::/:::::::/::::::::/::::::::::::::::::::::::::::::::\:::::::\::::::|::::|::::::|::::::N\
//        | ::|:::::::|:::::::/
//        |:::::::::/|:::::::::/:::::\::::::\:::::::\:::::|::::|:::::::|::::::N|
//        | ::|:::::::|::::::/  |:|::::::| |::::::::|
//        |:::::\::::::\:::::::|:::/:::::]::::::::::::::N\ | ::|:::::::|:::::/
//        |:|::::::| |::::::::| \:::::\\:::::\::::::|::/:::::/:::::::/:::::::NN|
//        | ::|:::::::|::::|     \:\:::::|
//        \::::::::\ --\::::\_\::::|:::::|:/:::::/:::::::/::::::::NN|
//         |::|:::::::|::::|-'""""\:\:::|
//         \::\-::::\   `-|\:\  `-:|:::::|:::::::::::::/:::::|:::::N|
//         |::|::::\::\::\::|  ___ \ `-_:\     "-\ `-__  --'''___;_
//         |::::|:::::::::.m'\:::::::|::::N|
//          \::\::::|:::\:\--\___  `- ` '"        ""   ggmm@@@@@@@@@m
//          ):::/:::::::. @@XXL|:::::::\:::N|
//           \::\::::\:::\mN**@@@@@mm \    |::TT:::/::::/N:::::/
//           @@@@XXL|::::::::\::NN\
//            \N:NN\:::-.::\  |::TT::|                  ` . _\:::::/
//            /::7NN:::/::|@@@@XXL|:::::::::\::NN\
//             \NNN\\'n-:`N\ - \::::/                             / /
//             /NN::::/:::|@@@XXL/:::::::::::\::NN\
//              `"NN\ `-NN''\                                    _7 "
//              \:::::\::|LXXXLL/:::::::::::::`.NNN\
//                `-NN\ \NNNN\                                          |\::::\:|<LLLL/\:::::::::::::\::`NN\
//                    ` '|NNNN\          '                             /NNN`m-
//                    >NN|::\NN\:::::\:::::::\:::::`.
//                       |NNNNNN\                                   .i'/:::::::/NN|:::\NN\::::::\:::::::\::::::`;-.
//                      |NNNNNN/:/`.          .__.              . '
//                      |/::/::::/NNN|:::::\N\:::::::`.:::::`Nn::::::::`m-.
//                     /NNNNN/:n/:::|` .                    . '
//                     /::y::::/NN::N|:::\::\|:::::::::`.:::::"-.::::::::::`m.
//                    /NNN.':://::::|NNNN/` .          . '
//                    /:::/:::/"""">NN\::::\:::`.:::::.:::::::::::`-.:::::::::)
//                  /."':::.'N::::::|NNN/::\::__`'''\              /::::::::|@@@@||NN\::::::::::`.::::`
//                  .::::::::::::`.-.::/
//              -'::::::m':/:::::::/NN/:::::|ffffrrrrmmmmmmmm@@@@@|:::::::\N|@@@|
//              \:\N\::::::::::::`.:::::`.::::::::::::::::`..
//           /::::::m'::.':::::/::/"':::::/
//           /\fffffffffffff@@@@@@@|::::::::\|@@@|
//           N`.\NN`.::::::::::::`.:::::`-.::::::::.:::::::` .
//           \::::mT:':::::::/:.':::::::,'/MMM\N.   ffffffff @@|:::::::::\@@/.
//           NNNNNNNNN`m.:::::::::"=::::::"Nn:::::::`.::::::::`.
//          -':':::::::::::.':/:::::::://MMM. ""*fffffffffffffffff@\:::::::::\"
//          gg`  -  . NNNN\`n.::::::".::::::"N:::::::"n::::::::|
//    .- ':::.:::::::.':.':::/::::::::/- ' Mng      """"""""""
//    `\::|::::::\M*",,,,,,,,,,,,` .\\N`.::::|:::::::|::::::::|:::::::/
// /':::::.'::::::.'::/::::n/::::::::|,,,,,,
// "**++g,,________,,,,,,mmm\::\:::::::\,,,,,,,,,,,,gnNN" `
// .N)::/::.:::|::::::|::N|:::.''
//|:::. '::::::n":::/":::N"
//\:\::::::|,,,,,,,,,,,,,**/NN/*******,,,,,,,,`.|`.:::::|,,,,,, gnN*."'
//\:.:::|::::\::::::\nN::/
//.|::::::::,n":::,":::,N    \:\:::::\,,,,,,,,,,,,,,/NN/,,,,,,,,,,,,,,,,,,|   `.
//|ggnN**"   /           |::::|::::::::::::\Nm:|

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> P;

#define p_ary(ary, a, b)                                                       \
  do {                                                                         \
    cout << "[";                                                               \
    for (int count = (a); count < (b); ++count)                                \
      cout << ary[count] << ((b)-1 == count ? "" : ", ");                      \
    cout << "]\n";                                                             \
  } while (0)
#define p_map(map, it)                                                         \
  do {                                                                         \
    cout << "{";                                                               \
    for (auto(it) = map.begin();; ++(it)) {                                    \
      if ((it) == map.end()) {                                                 \
        cout << "}\n";                                                         \
        break;                                                                 \
      } else                                                                   \
        cout << "" << (it)->first << "=>" << (it)->second << ", ";             \
    }                                                                          \
  } while (0)

template <typename T1, typename T2>
ostream &operator<<(ostream &os, const pair<T1, T2> &a) {
  os << "(" << a.first << ", " << a.second << ")";
  return os;
}

const char newl = '\n';

int main() {
  /*
  int n,m = 100;
  cin >> n;
  vector<int> g(m);
  for (int i = 0;i < m;++i) {
      vector<bool> u(m,false);
      for (int j = i-i/n;j < i;++j) u[g[j]] = true;
      for (int j = 0;j < m;++j) if (!u[j]) {
          g[i] = j;
          break;
      }
  }
  // for (int i = 0;i < m;++i) cout << i << " " << g[i] << newl;
  for (int i = 0;i < m/n;++i) {
      cout << i << " ";
      for (int j = 0;j < n;++j) cout << g[i*n+j] << " ";
      cout << endl;
  }*/
  int n;
  cin >> n;
  int g = 0;
  for (int i = 0; i < n; ++i) {
    int a, k;
    cin >> a >> k;
    while (a % k) {
      a -= a / k + 1;
    }
    g ^= a / k;
  }
  cout << (g ? "Takahashi" : "Aoki") << endl;
}

Fixed submission:
//                                       _____   ---===--   _____
//                             .    ''                              ``  -.
//                      .  '                                                  `
//                      .
//                   .'       _ _  _ ` .
//                 /  ' '                 ''    -- . `\
//                |                                      ` -. /\
//                 \ ______  -----   ____                       ` -. .'|_
//                  \\mmmNNNNNNNNNNNNmm==____`   - . _                `.`  -
//                  .......  - '  . ' |
//                   |"""""""""""""MNNNNNNNNNNNNNNNm==___ `  -  . _
//                   \   .---====-- .. '     |
//                   -''''''''''' `   -  __   '"""MMNNNNNNNNNNNmm===______ "| __
//                   | | NN) (
//                 / ::::::::::::::::::::::::::`  -  .  __
//                 '"""MNNNNNNNNNNNNN\   (NNN*  | |__...J
//               /  ::::::::::::::::::::::::::::::::::::::::::` -  .  __ '"""\
//               . ''|      ` .
//             /    :::::::::::::::::::::::::::::::::::::::::::::::::::  '''' /
//             -- ' /  |::\  \ ,)   `.
//            /    ::'   ':::::::::/:::::::::::::::::::::''::  :::   ::::::::/
//            ( /   |:::\   "" _. ''
//           /    ::'   :/:'  ::  /    :::::    :::     :. .::\:::::::::::::< _
//           /::::::\  /\
//          / .:::::::::/::...:. / :::::....:::::::::::::::\:::::::::::::::\:`:-
//          /::::\::::`:N\
//         /
//         ::/:::::::/::::::::/::::::::::::::::::::::::::::::::\:::::::\::::::|::::|::::::|::::::N\
//        | ::|:::::::|:::::::/
//        |:::::::::/|:::::::::/:::::\::::::\:::::::\:::::|::::|:::::::|::::::N|
//        | ::|:::::::|::::::/  |:|::::::| |::::::::|
//        |:::::\::::::\:::::::|:::/:::::]::::::::::::::N\ | ::|:::::::|:::::/
//        |:|::::::| |::::::::| \:::::\\:::::\::::::|::/:::::/:::::::/:::::::NN|
//        | ::|:::::::|::::|     \:\:::::|
//        \::::::::\ --\::::\_\::::|:::::|:/:::::/:::::::/::::::::NN|
//         |::|:::::::|::::|-'""""\:\:::|
//         \::\-::::\   `-|\:\  `-:|:::::|:::::::::::::/:::::|:::::N|
//         |::|::::\::\::\::|  ___ \ `-_:\     "-\ `-__  --'''___;_
//         |::::|:::::::::.m'\:::::::|::::N|
//          \::\::::|:::\:\--\___  `- ` '"        ""   ggmm@@@@@@@@@m
//          ):::/:::::::. @@XXL|:::::::\:::N|
//           \::\::::\:::\mN**@@@@@mm \    |::TT:::/::::/N:::::/
//           @@@@XXL|::::::::\::NN\
//            \N:NN\:::-.::\  |::TT::|                  ` . _\:::::/
//            /::7NN:::/::|@@@@XXL|:::::::::\::NN\
//             \NNN\\'n-:`N\ - \::::/                             / /
//             /NN::::/:::|@@@XXL/:::::::::::\::NN\
//              `"NN\ `-NN''\                                    _7 "
//              \:::::\::|LXXXLL/:::::::::::::`.NNN\
//                `-NN\ \NNNN\                                          |\::::\:|<LLLL/\:::::::::::::\::`NN\
//                    ` '|NNNN\          '                             /NNN`m-
//                    >NN|::\NN\:::::\:::::::\:::::`.
//                       |NNNNNN\                                   .i'/:::::::/NN|:::\NN\::::::\:::::::\::::::`;-.
//                      |NNNNNN/:/`.          .__.              . '
//                      |/::/::::/NNN|:::::\N\:::::::`.:::::`Nn::::::::`m-.
//                     /NNNNN/:n/:::|` .                    . '
//                     /::y::::/NN::N|:::\::\|:::::::::`.:::::"-.::::::::::`m.
//                    /NNN.':://::::|NNNN/` .          . '
//                    /:::/:::/"""">NN\::::\:::`.:::::.:::::::::::`-.:::::::::)
//                  /."':::.'N::::::|NNN/::\::__`'''\              /::::::::|@@@@||NN\::::::::::`.::::`
//                  .::::::::::::`.-.::/
//              -'::::::m':/:::::::/NN/:::::|ffffrrrrmmmmmmmm@@@@@|:::::::\N|@@@|
//              \:\N\::::::::::::`.:::::`.::::::::::::::::`..
//           /::::::m'::.':::::/::/"':::::/
//           /\fffffffffffff@@@@@@@|::::::::\|@@@|
//           N`.\NN`.::::::::::::`.:::::`-.::::::::.:::::::` .
//           \::::mT:':::::::/:.':::::::,'/MMM\N.   ffffffff @@|:::::::::\@@/.
//           NNNNNNNNN`m.:::::::::"=::::::"Nn:::::::`.::::::::`.
//          -':':::::::::::.':/:::::::://MMM. ""*fffffffffffffffff@\:::::::::\"
//          gg`  -  . NNNN\`n.::::::".::::::"N:::::::"n::::::::|
//    .- ':::.:::::::.':.':::/::::::::/- ' Mng      """"""""""
//    `\::|::::::\M*",,,,,,,,,,,,` .\\N`.::::|:::::::|::::::::|:::::::/
// /':::::.'::::::.'::/::::n/::::::::|,,,,,,
// "**++g,,________,,,,,,mmm\::\:::::::\,,,,,,,,,,,,gnNN" `
// .N)::/::.:::|::::::|::N|:::.''
//|:::. '::::::n":::/":::N"
//\:\::::::|,,,,,,,,,,,,,**/NN/*******,,,,,,,,`.|`.:::::|,,,,,, gnN*."'
//\:.:::|::::\::::::\nN::/
//.|::::::::,n":::,":::,N    \:\:::::\,,,,,,,,,,,,,,/NN/,,,,,,,,,,,,,,,,,,|   `.
//|ggnN**"   /           |::::|::::::::::::\Nm:|

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> P;

#define p_ary(ary, a, b)                                                       \
  do {                                                                         \
    cout << "[";                                                               \
    for (int count = (a); count < (b); ++count)                                \
      cout << ary[count] << ((b)-1 == count ? "" : ", ");                      \
    cout << "]\n";                                                             \
  } while (0)
#define p_map(map, it)                                                         \
  do {                                                                         \
    cout << "{";                                                               \
    for (auto(it) = map.begin();; ++(it)) {                                    \
      if ((it) == map.end()) {                                                 \
        cout << "}\n";                                                         \
        break;                                                                 \
      } else                                                                   \
        cout << "" << (it)->first << "=>" << (it)->second << ", ";             \
    }                                                                          \
  } while (0)

template <typename T1, typename T2>
ostream &operator<<(ostream &os, const pair<T1, T2> &a) {
  os << "(" << a.first << ", " << a.second << ")";
  return os;
}

const char newl = '\n';

int main() {
  /*
  int n,m = 100;
  cin >> n;
  vector<int> g(m);
  for (int i = 0;i < m;++i) {
      vector<bool> u(m,false);
      for (int j = i-i/n;j < i;++j) u[g[j]] = true;
      for (int j = 0;j < m;++j) if (!u[j]) {
          g[i] = j;
          break;
      }
  }
  // for (int i = 0;i < m;++i) cout << i << " " << g[i] << newl;
  for (int i = 0;i < m/n;++i) {
      cout << i << " ";
      for (int j = 0;j < n;++j) cout << g[i*n+j] << " ";
      cout << endl;
  }*/
  int n;
  cin >> n;
  int g = 0;
  for (int i = 0; i < n; ++i) {
    int a, k;
    cin >> a >> k;
    while (a % k) {
      int b = a / k + 1;
      if (a % k <= b)
        a -= b;
      else
        a -= (a % k) / b * b;
    }
    g ^= a / k;
  }
  cout << (g ? "Takahashi" : "Aoki") << endl;
}