提出 #625090
ソースコード 拡げる
#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
#include<cmath>
#include<climits>
#include<ctime>
#include<cstring>
#include<numeric>
#define ALL(v) (v).begin(),(v).end()
#define REP(i,p,n) for(int i=p;i<(int)(n);++i)
#define rep(i,n) REP(i,0,n)
#define dump(a) (cerr << #a << "=" << (a) << endl)
#define DUMP(list) cout << "{ "; for(auto nth : list){ cout << nth << " "; } cout << "}" << endl;
using namespace std;
struct Room {
int a, i;
Room(): a(0), i(0) {}
Room(int a_, int i_): a(a_), i(i_) {}
bool operator<( const Room &r ) const {
if (a == r.a) return i < r.i;
return a < r.a;
}
bool operator==( const Room &r ) const {
if (a == r.a) return i == r.i;
return false;
}
};
int N;
int solve(vector<Room> rooms) {
int ans = 1;
for (int i = 1; i < N - 1; ++i) {
Room prev = rooms[i - 1];
Room cur = rooms[i];
if (prev.i > cur.i) ans++;
}
return ans;
}
int main() {
cin >> N;
vector<Room> rooms;
int max_a = 0;
for (int i = 0; i < N; ++i) {
int a;
cin >> a;
max_a = max(max_a, a);
rooms.push_back(Room(a, i));
}
// start と goal を決める
Room start_room, end_room;
vector<pair<Room, Room>> start_end;
for (int i = 0; i < rooms.size(); ++i) {
if (rooms[i].a == max_a) {
start_end.push_back({rooms[i % rooms.size()], rooms[i]});
}
}
int ans = INT_MAX / 3;
for (pair<Room, Room> se : start_end) {
// 周回数を求める
vector<Room> tmp = rooms;
for (int ti = tmp.size() - 1; ti >= 0; --ti) {
if (tmp[ti] == se.first || tmp[ti] == se.second) tmp.erase(tmp.begin() + ti);
}
sort(ALL(tmp));
int res = solve(tmp);
res += (se.first.i > tmp[0].i) ? 1 : 0;
res += (se.second.i > tmp[tmp.size() - 1].i) ? 1 : 0;
ans = min(res, ans);
}
cout << ans << endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | B - ディスコ社内ツアー |
| ユーザ | kengo92i |
| 言語 | C++11 (GCC 4.9.2) |
| 得点 | 0 |
| コード長 | 2087 Byte |
| 結果 | WA |
| 実行時間 | 2035 ms |
| メモリ | 4748 KiB |
ジャッジ結果
| セット名 | Sample | Small | Permutation | All | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 0 / 20 | 0 / 10 | 0 / 70 | ||||||||||||||||||
| 結果 |
|
|
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 00_example_04.txt |
| Small | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 00_example_04.txt, 10_rand_01.txt, 10_rand_02.txt, 10_rand_03.txt, 10_rand_04.txt, 10_rand_05.txt, 10_rand_06.txt, 10_rand_07.txt, 10_rand_08.txt, 20_perm_01.txt, 20_perm_02.txt, 20_perm_03.txt, 20_perm_04.txt, 20_perm_05.txt, 20_perm_06.txt, 20_perm_07.txt, 20_perm_08.txt, 30_hand_01.txt, 30_hand_02.txt, 30_hand_03.txt, 30_hand_04.txt, 30_hand_05.txt, 30_hand_06.txt |
| Permutation | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 20_perm_01.txt, 20_perm_02.txt, 20_perm_03.txt, 20_perm_04.txt, 20_perm_05.txt, 20_perm_06.txt, 20_perm_07.txt, 20_perm_08.txt, 30_hand_01.txt, 30_hand_02.txt, 60_perm_01.txt, 60_perm_02.txt, 60_perm_03.txt, 60_perm_04.txt, 60_perm_05.txt, 60_perm_06.txt, 60_perm_07.txt, 60_perm_08.txt, 70_hand_01.txt, 70_hand_02.txt |
| All | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 00_example_04.txt, 10_rand_01.txt, 10_rand_02.txt, 10_rand_03.txt, 10_rand_04.txt, 10_rand_05.txt, 10_rand_06.txt, 10_rand_07.txt, 10_rand_08.txt, 20_perm_01.txt, 20_perm_02.txt, 20_perm_03.txt, 20_perm_04.txt, 20_perm_05.txt, 20_perm_06.txt, 20_perm_07.txt, 20_perm_08.txt, 30_hand_01.txt, 30_hand_02.txt, 30_hand_03.txt, 30_hand_04.txt, 30_hand_05.txt, 30_hand_06.txt, 50_rand_01.txt, 50_rand_02.txt, 50_rand_03.txt, 50_rand_04.txt, 50_rand_05.txt, 50_rand_06.txt, 50_rand_07.txt, 50_rand_08.txt, 60_perm_01.txt, 60_perm_02.txt, 60_perm_03.txt, 60_perm_04.txt, 60_perm_05.txt, 60_perm_06.txt, 60_perm_07.txt, 60_perm_08.txt, 70_hand_01.txt, 70_hand_02.txt, 70_hand_03.txt, 70_hand_04.txt, 70_hand_05.txt, 70_hand_06.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_example_01.txt | WA | 25 ms | 932 KiB |
| 00_example_02.txt | WA | 25 ms | 808 KiB |
| 00_example_03.txt | AC | 25 ms | 924 KiB |
| 00_example_04.txt | WA | 26 ms | 804 KiB |
| 10_rand_01.txt | WA | 25 ms | 796 KiB |
| 10_rand_02.txt | WA | 25 ms | 924 KiB |
| 10_rand_03.txt | WA | 25 ms | 924 KiB |
| 10_rand_04.txt | WA | 26 ms | 800 KiB |
| 10_rand_05.txt | WA | 25 ms | 800 KiB |
| 10_rand_06.txt | WA | 25 ms | 928 KiB |
| 10_rand_07.txt | WA | 25 ms | 932 KiB |
| 10_rand_08.txt | WA | 26 ms | 800 KiB |
| 20_perm_01.txt | WA | 24 ms | 808 KiB |
| 20_perm_02.txt | AC | 26 ms | 808 KiB |
| 20_perm_03.txt | WA | 25 ms | 920 KiB |
| 20_perm_04.txt | WA | 26 ms | 804 KiB |
| 20_perm_05.txt | AC | 25 ms | 928 KiB |
| 20_perm_06.txt | WA | 25 ms | 800 KiB |
| 20_perm_07.txt | WA | 25 ms | 924 KiB |
| 20_perm_08.txt | WA | 25 ms | 924 KiB |
| 30_hand_01.txt | WA | 25 ms | 928 KiB |
| 30_hand_02.txt | AC | 25 ms | 808 KiB |
| 30_hand_03.txt | AC | 26 ms | 924 KiB |
| 30_hand_04.txt | AC | 25 ms | 928 KiB |
| 30_hand_05.txt | AC | 26 ms | 808 KiB |
| 30_hand_06.txt | WA | 26 ms | 808 KiB |
| 50_rand_01.txt | WA | 49 ms | 1684 KiB |
| 50_rand_02.txt | WA | 81 ms | 2456 KiB |
| 50_rand_03.txt | WA | 69 ms | 2460 KiB |
| 50_rand_04.txt | WA | 67 ms | 2200 KiB |
| 50_rand_05.txt | WA | 49 ms | 1448 KiB |
| 50_rand_06.txt | WA | 24 ms | 800 KiB |
| 50_rand_07.txt | WA | 34 ms | 1016 KiB |
| 50_rand_08.txt | WA | 58 ms | 2200 KiB |
| 60_perm_01.txt | AC | 50 ms | 1744 KiB |
| 60_perm_02.txt | WA | 73 ms | 2452 KiB |
| 60_perm_03.txt | WA | 73 ms | 2456 KiB |
| 60_perm_04.txt | WA | 62 ms | 2196 KiB |
| 60_perm_05.txt | WA | 40 ms | 1436 KiB |
| 60_perm_06.txt | WA | 26 ms | 916 KiB |
| 60_perm_07.txt | WA | 32 ms | 1140 KiB |
| 60_perm_08.txt | WA | 63 ms | 2196 KiB |
| 70_hand_01.txt | WA | 85 ms | 3216 KiB |
| 70_hand_02.txt | AC | 86 ms | 3224 KiB |
| 70_hand_03.txt | TLE | 2035 ms | 4748 KiB |
| 70_hand_04.txt | AC | 75 ms | 3220 KiB |
| 70_hand_05.txt | WA | 112 ms | 3224 KiB |
| 70_hand_06.txt | WA | 1690 ms | 3220 KiB |