結果
問題 | No.497 入れ子の箱 |
ユーザー | eiya5498513 |
提出日時 | 2017-03-24 23:57:41 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 5 ms / 5,000 ms |
コード長 | 1,173 bytes |
コンパイル時間 | 875 ms |
コンパイル使用メモリ | 104,912 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-06 01:58:36 |
合計ジャッジ時間 | 1,822 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
ソースコード
#if 1 #include <iostream> #include <fstream> #include <string> #include <vector> #include <map> #include <set> #include <unordered_map> #include <unordered_set> #include <queue> #include <stack> #include <array> #include <deque> #include <algorithm> #include <utility> #include <cstdint> #include <functional> #include <iomanip> #include <numeric> #define in std::cin #define out std::cout int32_t N; std::tuple<int32_t, int32_t, int32_t> BOX[1000]; int32_t DP[1000]; int main() { using std::endl; in.sync_with_stdio(false); out.sync_with_stdio(false); in >> N; for (size_t i = 0; i < N; i++) { int32_t arr[3]; in >> arr[0] >> arr[1] >> arr[2]; std::sort(arr, arr + 3); std::get<0>(BOX[i]) = arr[0]; std::get<1>(BOX[i]) = arr[1]; std::get<2>(BOX[i]) = arr[2]; } std::sort(BOX, BOX + N); for (size_t i = 0; i < N; i++) { for (size_t j = 0; j < i; ++j) { if ( std::get<0>(BOX[i]) > std::get<0>(BOX[j]) && std::get<1>(BOX[i]) > std::get<1>(BOX[j]) && std::get<2>(BOX[i]) > std::get<2>(BOX[j]) ) { DP[i] = std::max(DP[i], DP[j] + 1); } } } out << (*std::max_element(DP,DP + N))+1 << endl; return 0; } #endif