Submission #62642


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 (s > u) continue;
            if (t <= v) {
                next[Pair(t, v)] = (next[Pair(t, 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 1615 Byte
Status AC
Exec Time 271 ms
Memory 2228 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 22 ms 752 KB
large/case_001.txt AC 20 ms 784 KB
large/case_002.txt AC 20 ms 784 KB
large/case_003.txt AC 19 ms 784 KB
large/case_004.txt AC 23 ms 688 KB
large/case_005.txt AC 24 ms 784 KB
large/case_006.txt AC 20 ms 784 KB
large/case_007.txt AC 20 ms 668 KB
large/case_008.txt AC 20 ms 656 KB
large/case_009.txt AC 21 ms 792 KB
large/case_010.txt AC 21 ms 780 KB
large/case_011.txt AC 21 ms 736 KB
large/case_012.txt AC 19 ms 788 KB
large/case_013.txt AC 20 ms 784 KB
large/case_014.txt AC 20 ms 696 KB
large/case_015.txt AC 21 ms 784 KB
large/case_016.txt AC 19 ms 768 KB
large/case_017.txt AC 19 ms 784 KB
large/case_018.txt AC 21 ms 780 KB
large/case_019.txt AC 21 ms 796 KB
large/case_020.txt AC 19 ms 784 KB
large/case_021.txt AC 21 ms 784 KB
large/case_022.txt AC 20 ms 696 KB
large/case_023.txt AC 20 ms 788 KB
large/large_case_000.txt AC 227 ms 1980 KB
large/large_case_001.txt AC 211 ms 1968 KB
large/large_case_002.txt AC 205 ms 1844 KB
large/large_case_003.txt AC 196 ms 1960 KB
large/large_case_004.txt AC 236 ms 2096 KB
large/large_case_005.txt AC 271 ms 2220 KB
large/large_case_006.txt AC 265 ms 2228 KB
large/large_case_007.txt AC 258 ms 2068 KB
large/large_case_008.txt AC 219 ms 1976 KB
large/large_case_009.txt AC 208 ms 1972 KB
large/large_case_010.txt AC 157 ms 1340 KB
large/large_case_011.txt AC 57 ms 940 KB
large/large_case_012.txt AC 139 ms 1328 KB
large/large_case_013.txt AC 93 ms 1072 KB
large/large_case_014.txt AC 115 ms 1212 KB
large/large_case_015.txt AC 38 ms 816 KB
large/large_case_016.txt AC 118 ms 1208 KB
large/large_case_017.txt AC 149 ms 1332 KB
large/large_case_018.txt AC 134 ms 1212 KB
large/large_case_019.txt AC 20 ms 780 KB
large/large_case_020.txt AC 210 ms 1980 KB
large/large_case_021.txt AC 238 ms 2096 KB
large/large_case_022.txt AC 230 ms 2104 KB
large/large_case_023.txt AC 254 ms 2172 KB
large/large_case_024.txt AC 239 ms 2100 KB
large/large_case_025.txt AC 210 ms 2024 KB
large/large_case_026.txt AC 214 ms 1920 KB
large/large_case_027.txt AC 226 ms 1976 KB
large/large_case_028.txt AC 267 ms 2228 KB
large/large_case_029.txt AC 213 ms 1900 KB
large/medium_case_000.txt AC 20 ms 784 KB
large/medium_case_001.txt AC 21 ms 764 KB
large/medium_case_002.txt AC 20 ms 788 KB
large/medium_case_003.txt AC 20 ms 788 KB
large/medium_case_004.txt AC 20 ms 780 KB
large/medium_case_005.txt AC 20 ms 692 KB
large/medium_case_006.txt AC 20 ms 780 KB
large/medium_case_007.txt AC 21 ms 776 KB
large/medium_case_008.txt AC 20 ms 784 KB
large/medium_case_009.txt AC 20 ms 788 KB
large/medium_case_010.txt AC 21 ms 788 KB
large/medium_case_011.txt AC 19 ms 764 KB
large/medium_case_012.txt AC 20 ms 780 KB
large/medium_case_013.txt AC 21 ms 672 KB
large/medium_case_014.txt AC 20 ms 780 KB
large/medium_case_015.txt AC 21 ms 792 KB
large/medium_case_016.txt AC 19 ms 816 KB
large/medium_case_017.txt AC 20 ms 780 KB
large/medium_case_018.txt AC 20 ms 792 KB
large/medium_case_019.txt AC 20 ms 792 KB
large/medium_case_020.txt AC 20 ms 780 KB
medium/case_000.txt AC 20 ms 784 KB
medium/case_001.txt AC 20 ms 780 KB
medium/case_002.txt AC 20 ms 772 KB
medium/case_003.txt AC 21 ms 788 KB
medium/case_004.txt AC 20 ms 688 KB
medium/case_005.txt AC 22 ms 792 KB
medium/case_006.txt AC 20 ms 780 KB
medium/case_007.txt AC 20 ms 784 KB
medium/case_008.txt AC 20 ms 784 KB
medium/case_009.txt AC 20 ms 784 KB
medium/case_010.txt AC 19 ms 784 KB
medium/case_011.txt AC 20 ms 784 KB
medium/case_012.txt AC 21 ms 692 KB
medium/case_013.txt AC 20 ms 792 KB
medium/case_014.txt AC 20 ms 780 KB
medium/case_015.txt AC 21 ms 776 KB
medium/case_016.txt AC 20 ms 784 KB
medium/case_017.txt AC 20 ms 784 KB
medium/case_018.txt AC 21 ms 784 KB
medium/case_019.txt AC 19 ms 772 KB
medium/case_020.txt AC 20 ms 792 KB
medium/case_021.txt AC 20 ms 772 KB
medium/case_022.txt AC 20 ms 780 KB
medium/case_023.txt AC 19 ms 776 KB
medium/medium_case_000.txt AC 19 ms 780 KB
medium/medium_case_001.txt AC 21 ms 776 KB
medium/medium_case_002.txt AC 20 ms 784 KB
medium/medium_case_003.txt AC 20 ms 784 KB
medium/medium_case_004.txt AC 20 ms 788 KB
medium/medium_case_005.txt AC 21 ms 632 KB
medium/medium_case_006.txt AC 21 ms 632 KB
medium/medium_case_007.txt AC 21 ms 760 KB
medium/medium_case_008.txt AC 20 ms 788 KB
medium/medium_case_009.txt AC 21 ms 788 KB
medium/medium_case_010.txt AC 20 ms 792 KB
medium/medium_case_011.txt AC 21 ms 780 KB
medium/medium_case_012.txt AC 19 ms 756 KB
medium/medium_case_013.txt AC 22 ms 768 KB
medium/medium_case_014.txt AC 20 ms 784 KB
medium/medium_case_015.txt AC 21 ms 788 KB
medium/medium_case_016.txt AC 21 ms 732 KB
medium/medium_case_017.txt AC 20 ms 652 KB
medium/medium_case_018.txt AC 22 ms 744 KB
medium/medium_case_019.txt AC 20 ms 780 KB
medium/medium_case_020.txt AC 22 ms 772 KB
small/case_000.txt AC 19 ms 784 KB
small/case_001.txt AC 22 ms 652 KB
small/case_002.txt AC 22 ms 660 KB
small/case_003.txt AC 20 ms 784 KB
small/case_004.txt AC 20 ms 788 KB
small/case_005.txt AC 19 ms 780 KB
small/case_006.txt AC 20 ms 780 KB
small/case_007.txt AC 22 ms 668 KB
small/case_008.txt AC 20 ms 788 KB
small/case_009.txt AC 21 ms 788 KB
small/case_010.txt AC 19 ms 784 KB
small/case_011.txt AC 22 ms 692 KB
small/case_012.txt AC 20 ms 784 KB
small/case_013.txt AC 20 ms 788 KB
small/case_014.txt AC 20 ms 784 KB
small/case_015.txt AC 20 ms 788 KB
small/case_016.txt AC 22 ms 656 KB
small/case_017.txt AC 19 ms 780 KB
small/case_018.txt AC 21 ms 776 KB
small/case_019.txt AC 22 ms 784 KB
small/case_020.txt AC 21 ms 788 KB
small/case_021.txt AC 20 ms 764 KB
small/case_022.txt AC 21 ms 788 KB
small/case_023.txt AC 21 ms 780 KB