提出 #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
結果
AC × 1
WA × 3
AC × 7
WA × 19
AC × 6
WA × 17
AC × 10
WA × 37
TLE × 1
セット名 テストケース
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