結果
問題 | No.110 しましまピラミッド |
ユーザー |
|
提出日時 | 2017-04-11 02:14:03 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 1,267 bytes |
コンパイル時間 | 1,112 ms |
コンパイル使用メモリ | 87,280 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-31 11:30:38 |
合計ジャッジ時間 | 1,660 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 26 |
ソースコード
#define _USE_MATH_DEFINES #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string> #include<iostream> #include<cctype> #include<cstdio> #include<vector> #include<stack> #include<queue> #include <algorithm> #include<math.h> #include<set> #include<map> #include<iomanip> //#include<bits/stdc++.h> using namespace std; int main() { int a, b; vector<int>A, B; cin >> a; for (int i = 0; i < a; i++) { int x; cin >> x; A.push_back(x); } cin >> b; for (int i = 0; i < b; i++) { int x; cin >> x; B.push_back(x); } sort(A.begin(), A.end()); sort(B.begin(), B.end()); int t = 0, m = 0; int a1 = 0, a2 = 0; int r = 0; while (1) { if (r >= A[a - 1])break; for (; t < a; t++) { if (A[t] > r) { r = A[t]; a1++; break; } } if (r >= B[b - 1])break; for (; m < b; m++) { if (B[m] > r) { r = B[m]; a1++; break; } } if (t == a || m == b)break; } r = 0; t = 0, m = 0; while (1) { if (r >= B[b - 1])break; for (; m < b; m++) { if (B[m] > r) { r = B[m]; a2++; break; } } if (r >= A[a - 1])break; for (; t < a; t++) { if (A[t] > r) { r = A[t]; a2++; break; } } if (t == a || m == b)break; } cout << max(a1, a2) << endl; return 0; }