Submission #62641


Source Code Expand

#include <iostream>
#include <vector>
#include <map>
#include <algorithm>

using namespace std;

typedef pair<int, int> Pair;
const int kMod = 1000000007;

struct Train
{
    int s, t;

    bool operator<(const Train& other) const
    {
        if (s != other.s) return s < other.s;
        return t < other.t;
    }
};

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int n, m;
    cin >> n >> m;

    vector<Train> trains(m);
    for (int i = 0; i < m; i++) {
        cin >> trains[i].s >> trains[i].t;
        --trains[i].s, --trains[i].t;
    }

    sort(trains.begin(), trains.end());

    map<Pair, int> counts;
    counts[Pair(0, 0)] = 1;
    for (int i = 0; i < m; i++) {
        int s = trains[i].s;
        int t = trains[i].t + 1;

        map<Pair, int> next(counts);
        for (map<Pair, int>::reverse_iterator p = counts.rbegin();
             p != counts.rend(); ++p) {
            int u = p->first.first, v = p->first.second;
            if (t <= u) {
                next[Pair(u, v)] = (next[Pair(u, v)] + counts[Pair(u, v)]) % kMod;
                continue;
            }
            if (t <= v) {
                int w = (s <= u ? t : u);
                next[Pair(w, v)] = (next[Pair(w, v)] + counts[Pair(u, v)]) % kMod;
                continue;
            }
            if (s <= u) {
                next[Pair(v, t)] = (next[Pair(v, t)] + counts[Pair(u, v)]) % kMod;
                continue;
            }
        }
        counts.swap(next);
    }

    cout << counts[Pair(n, n)] << endl;
    return 0;
}

Submission Info

Submission Time
Task H - ダイヤグラム
User yuizumi
Language C++ (G++ 4.6.4)
Score 100
Code Size 1624 Byte
Status AC
Exec Time 312 ms
Memory 2236 KB

Judge Result

Set Name small medium large
Score / Max Score 10 / 10 40 / 40 50 / 50
Status
AC × 24
AC × 45
AC × 75
Set Name Test Cases
small small/case_000.txt, small/case_001.txt, small/case_002.txt, small/case_003.txt, small/case_004.txt, small/case_005.txt, small/case_006.txt, small/case_007.txt, small/case_008.txt, small/case_009.txt, small/case_010.txt, small/case_011.txt, small/case_012.txt, small/case_013.txt, small/case_014.txt, small/case_015.txt, small/case_016.txt, small/case_017.txt, small/case_018.txt, small/case_019.txt, small/case_020.txt, small/case_021.txt, small/case_022.txt, small/case_023.txt
medium medium/case_000.txt, medium/case_001.txt, medium/case_002.txt, medium/case_003.txt, medium/case_004.txt, medium/case_005.txt, medium/case_006.txt, medium/case_007.txt, medium/case_008.txt, medium/case_009.txt, medium/case_010.txt, medium/case_011.txt, medium/case_012.txt, medium/case_013.txt, medium/case_014.txt, medium/case_015.txt, medium/case_016.txt, medium/case_017.txt, medium/case_018.txt, medium/case_019.txt, medium/case_020.txt, medium/case_021.txt, medium/case_022.txt, medium/case_023.txt, medium/medium_case_000.txt, medium/medium_case_001.txt, medium/medium_case_002.txt, medium/medium_case_003.txt, medium/medium_case_004.txt, medium/medium_case_005.txt, medium/medium_case_006.txt, medium/medium_case_007.txt, medium/medium_case_008.txt, medium/medium_case_009.txt, medium/medium_case_010.txt, medium/medium_case_011.txt, medium/medium_case_012.txt, medium/medium_case_013.txt, medium/medium_case_014.txt, medium/medium_case_015.txt, medium/medium_case_016.txt, medium/medium_case_017.txt, medium/medium_case_018.txt, medium/medium_case_019.txt, medium/medium_case_020.txt
large large/case_000.txt, large/case_001.txt, large/case_002.txt, large/case_003.txt, large/case_004.txt, large/case_005.txt, large/case_006.txt, large/case_007.txt, large/case_008.txt, large/case_009.txt, large/case_010.txt, large/case_011.txt, large/case_012.txt, large/case_013.txt, large/case_014.txt, large/case_015.txt, large/case_016.txt, large/case_017.txt, large/case_018.txt, large/case_019.txt, large/case_020.txt, large/case_021.txt, large/case_022.txt, large/case_023.txt, large/large_case_000.txt, large/large_case_001.txt, large/large_case_002.txt, large/large_case_003.txt, large/large_case_004.txt, large/large_case_005.txt, large/large_case_006.txt, large/large_case_007.txt, large/large_case_008.txt, large/large_case_009.txt, large/large_case_010.txt, large/large_case_011.txt, large/large_case_012.txt, large/large_case_013.txt, large/large_case_014.txt, large/large_case_015.txt, large/large_case_016.txt, large/large_case_017.txt, large/large_case_018.txt, large/large_case_019.txt, large/large_case_020.txt, large/large_case_021.txt, large/large_case_022.txt, large/large_case_023.txt, large/large_case_024.txt, large/large_case_025.txt, large/large_case_026.txt, large/large_case_027.txt, large/large_case_028.txt, large/large_case_029.txt, large/medium_case_000.txt, large/medium_case_001.txt, large/medium_case_002.txt, large/medium_case_003.txt, large/medium_case_004.txt, large/medium_case_005.txt, large/medium_case_006.txt, large/medium_case_007.txt, large/medium_case_008.txt, large/medium_case_009.txt, large/medium_case_010.txt, large/medium_case_011.txt, large/medium_case_012.txt, large/medium_case_013.txt, large/medium_case_014.txt, large/medium_case_015.txt, large/medium_case_016.txt, large/medium_case_017.txt, large/medium_case_018.txt, large/medium_case_019.txt, large/medium_case_020.txt
Case Name Status Exec Time Memory
large/case_000.txt AC 20 ms 788 KB
large/case_001.txt AC 19 ms 788 KB
large/case_002.txt AC 19 ms 784 KB
large/case_003.txt AC 20 ms 664 KB
large/case_004.txt AC 20 ms 664 KB
large/case_005.txt AC 20 ms 812 KB
large/case_006.txt AC 20 ms 784 KB
large/case_007.txt AC 20 ms 792 KB
large/case_008.txt AC 20 ms 780 KB
large/case_009.txt AC 20 ms 792 KB
large/case_010.txt AC 21 ms 780 KB
large/case_011.txt AC 19 ms 784 KB
large/case_012.txt AC 20 ms 792 KB
large/case_013.txt AC 20 ms 792 KB
large/case_014.txt AC 20 ms 788 KB
large/case_015.txt AC 20 ms 700 KB
large/case_016.txt AC 20 ms 784 KB
large/case_017.txt AC 20 ms 784 KB
large/case_018.txt AC 20 ms 696 KB
large/case_019.txt AC 20 ms 784 KB
large/case_020.txt AC 19 ms 784 KB
large/case_021.txt AC 19 ms 760 KB
large/case_022.txt AC 19 ms 784 KB
large/case_023.txt AC 20 ms 780 KB
large/large_case_000.txt AC 275 ms 2096 KB
large/large_case_001.txt AC 255 ms 1908 KB
large/large_case_002.txt AC 229 ms 1848 KB
large/large_case_003.txt AC 235 ms 1972 KB
large/large_case_004.txt AC 270 ms 2112 KB
large/large_case_005.txt AC 312 ms 2228 KB
large/large_case_006.txt AC 300 ms 2236 KB
large/large_case_007.txt AC 295 ms 2100 KB
large/large_case_008.txt AC 248 ms 1968 KB
large/large_case_009.txt AC 258 ms 1972 KB
large/large_case_010.txt AC 176 ms 1348 KB
large/large_case_011.txt AC 58 ms 948 KB
large/large_case_012.txt AC 155 ms 1312 KB
large/large_case_013.txt AC 94 ms 1076 KB
large/large_case_014.txt AC 129 ms 1200 KB
large/large_case_015.txt AC 37 ms 820 KB
large/large_case_016.txt AC 134 ms 1208 KB
large/large_case_017.txt AC 165 ms 1340 KB
large/large_case_018.txt AC 152 ms 1200 KB
large/large_case_019.txt AC 20 ms 784 KB
large/large_case_020.txt AC 254 ms 2136 KB
large/large_case_021.txt AC 270 ms 2092 KB
large/large_case_022.txt AC 256 ms 2092 KB
large/large_case_023.txt AC 289 ms 2168 KB
large/large_case_024.txt AC 274 ms 2104 KB
large/large_case_025.txt AC 256 ms 1972 KB
large/large_case_026.txt AC 247 ms 1984 KB
large/large_case_027.txt AC 271 ms 1968 KB
large/large_case_028.txt AC 312 ms 2232 KB
large/large_case_029.txt AC 248 ms 1964 KB
large/medium_case_000.txt AC 21 ms 632 KB
large/medium_case_001.txt AC 20 ms 788 KB
large/medium_case_002.txt AC 21 ms 784 KB
large/medium_case_003.txt AC 20 ms 788 KB
large/medium_case_004.txt AC 21 ms 776 KB
large/medium_case_005.txt AC 19 ms 780 KB
large/medium_case_006.txt AC 21 ms 792 KB
large/medium_case_007.txt AC 19 ms 680 KB
large/medium_case_008.txt AC 22 ms 776 KB
large/medium_case_009.txt AC 20 ms 780 KB
large/medium_case_010.txt AC 19 ms 788 KB
large/medium_case_011.txt AC 21 ms 632 KB
large/medium_case_012.txt AC 20 ms 784 KB
large/medium_case_013.txt AC 20 ms 780 KB
large/medium_case_014.txt AC 20 ms 768 KB
large/medium_case_015.txt AC 19 ms 780 KB
large/medium_case_016.txt AC 20 ms 780 KB
large/medium_case_017.txt AC 19 ms 780 KB
large/medium_case_018.txt AC 19 ms 688 KB
large/medium_case_019.txt AC 20 ms 808 KB
large/medium_case_020.txt AC 20 ms 692 KB
medium/case_000.txt AC 21 ms 784 KB
medium/case_001.txt AC 25 ms 780 KB
medium/case_002.txt AC 19 ms 784 KB
medium/case_003.txt AC 20 ms 792 KB
medium/case_004.txt AC 21 ms 768 KB
medium/case_005.txt AC 19 ms 788 KB
medium/case_006.txt AC 21 ms 792 KB
medium/case_007.txt AC 21 ms 632 KB
medium/case_008.txt AC 21 ms 784 KB
medium/case_009.txt AC 20 ms 696 KB
medium/case_010.txt AC 20 ms 788 KB
medium/case_011.txt AC 20 ms 780 KB
medium/case_012.txt AC 19 ms 780 KB
medium/case_013.txt AC 20 ms 680 KB
medium/case_014.txt AC 21 ms 784 KB
medium/case_015.txt AC 21 ms 792 KB
medium/case_016.txt AC 19 ms 788 KB
medium/case_017.txt AC 20 ms 784 KB
medium/case_018.txt AC 21 ms 628 KB
medium/case_019.txt AC 20 ms 704 KB
medium/case_020.txt AC 20 ms 784 KB
medium/case_021.txt AC 19 ms 780 KB
medium/case_022.txt AC 20 ms 792 KB
medium/case_023.txt AC 19 ms 780 KB
medium/medium_case_000.txt AC 20 ms 696 KB
medium/medium_case_001.txt AC 20 ms 780 KB
medium/medium_case_002.txt AC 20 ms 772 KB
medium/medium_case_003.txt AC 19 ms 780 KB
medium/medium_case_004.txt AC 21 ms 784 KB
medium/medium_case_005.txt AC 20 ms 784 KB
medium/medium_case_006.txt AC 21 ms 784 KB
medium/medium_case_007.txt AC 20 ms 796 KB
medium/medium_case_008.txt AC 20 ms 660 KB
medium/medium_case_009.txt AC 21 ms 784 KB
medium/medium_case_010.txt AC 20 ms 776 KB
medium/medium_case_011.txt AC 20 ms 764 KB
medium/medium_case_012.txt AC 27 ms 688 KB
medium/medium_case_013.txt AC 21 ms 792 KB
medium/medium_case_014.txt AC 23 ms 668 KB
medium/medium_case_015.txt AC 20 ms 784 KB
medium/medium_case_016.txt AC 20 ms 784 KB
medium/medium_case_017.txt AC 20 ms 796 KB
medium/medium_case_018.txt AC 20 ms 788 KB
medium/medium_case_019.txt AC 20 ms 784 KB
medium/medium_case_020.txt AC 20 ms 784 KB
small/case_000.txt AC 20 ms 780 KB
small/case_001.txt AC 21 ms 628 KB
small/case_002.txt AC 21 ms 632 KB
small/case_003.txt AC 20 ms 788 KB
small/case_004.txt AC 20 ms 784 KB
small/case_005.txt AC 20 ms 792 KB
small/case_006.txt AC 19 ms 788 KB
small/case_007.txt AC 20 ms 784 KB
small/case_008.txt AC 23 ms 684 KB
small/case_009.txt AC 20 ms 792 KB
small/case_010.txt AC 20 ms 784 KB
small/case_011.txt AC 20 ms 652 KB
small/case_012.txt AC 22 ms 784 KB
small/case_013.txt AC 20 ms 784 KB
small/case_014.txt AC 21 ms 784 KB
small/case_015.txt AC 20 ms 784 KB
small/case_016.txt AC 20 ms 632 KB
small/case_017.txt AC 19 ms 780 KB
small/case_018.txt AC 19 ms 788 KB
small/case_019.txt AC 19 ms 784 KB
small/case_020.txt AC 20 ms 780 KB
small/case_021.txt AC 21 ms 788 KB
small/case_022.txt AC 20 ms 756 KB
small/case_023.txt AC 20 ms 636 KB