Submission #65192


Source Code Expand

#include<cstdio>
#include<vector>
#include<algorithm>

#define rep(i,n) for(int i=0;i<(n);i++)

using namespace std;

const int M=1000000007;

struct interval{
	int a,b;
	bool operator<(const interval &I)const{ return a<I.a || a==I.a && b<I.b; }
};

int main(){
	int n,m; scanf("%d%d",&n,&m);
	static interval I[100000];
	rep(i,m) scanf("%d%d",&I[i].a,&I[i].b);

	vector<int> X;
	X.push_back(0);
	X.push_back(n);
	rep(i,m){
		X.push_back(I[i].a);
		X.push_back(I[i].b);
	}
	sort(X.begin(),X.end());
	X.erase(unique(X.begin(),X.end()),X.end());

	sort(I,I+m);

	// dp[j][k] := (0, X[j]] を二本以上で覆い, (X[j], X[k]] を一本で覆い, (X[k], n] を覆っていないような電車の選び方の数
	static int dp[402][402];
	dp[0][0]=1;
	rep(i,m){
		int t=lower_bound(X.begin(),X.end(),I[i].b)-X.begin();

		// rep(j,X.size()) for(int k=j;k<X.size();k++) {
		for(int j=X.size()-1;j>=0;j--) for(int k=X.size()-1;k>=j;k--) {
			// ( 0, x2] は二本以上で覆った
			// (x2, x1] は一本で覆った
			// (x1,  n] はまだ覆ってない
			int x2=X[j],x1=X[k];

			// 電車 i を使う
			if(I[i].a<=x2+1){
				if(x1<I[i].b){
					dp[k][t]+=dp[j][k];
					dp[k][t]%=M;
				}
				else if(x2<I[i].b){
					dp[t][k]+=dp[j][k];
					dp[t][k]%=M;
				}
				else{ // I[i].b<=x2
					dp[j][k]+=dp[j][k];
					dp[j][k]%=M;
				}
			}
		}
	}

	printf("%d\n",dp[X.size()-1][X.size()-1]);

	return 0;
}

Submission Info

Submission Time
Task H - ダイヤグラム
User fura2
Language C++ (G++ 4.6.4)
Score 100
Code Size 1478 Byte
Status AC
Exec Time 76 ms
Memory 1428 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:17:30: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
./Main.cpp:19:40: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]

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 19 ms 780 KB
large/case_001.txt AC 19 ms 776 KB
large/case_002.txt AC 20 ms 780 KB
large/case_003.txt AC 19 ms 784 KB
large/case_004.txt AC 20 ms 696 KB
large/case_005.txt AC 20 ms 776 KB
large/case_006.txt AC 19 ms 784 KB
large/case_007.txt AC 20 ms 696 KB
large/case_008.txt AC 20 ms 780 KB
large/case_009.txt AC 20 ms 784 KB
large/case_010.txt AC 19 ms 780 KB
large/case_011.txt AC 18 ms 784 KB
large/case_012.txt AC 18 ms 776 KB
large/case_013.txt AC 20 ms 764 KB
large/case_014.txt AC 20 ms 788 KB
large/case_015.txt AC 20 ms 780 KB
large/case_016.txt AC 20 ms 696 KB
large/case_017.txt AC 20 ms 784 KB
large/case_018.txt AC 20 ms 704 KB
large/case_019.txt AC 20 ms 788 KB
large/case_020.txt AC 20 ms 696 KB
large/case_021.txt AC 20 ms 788 KB
large/case_022.txt AC 20 ms 784 KB
large/case_023.txt AC 20 ms 780 KB
large/large_case_000.txt AC 74 ms 1296 KB
large/large_case_001.txt AC 73 ms 1424 KB
large/large_case_002.txt AC 71 ms 1336 KB
large/large_case_003.txt AC 71 ms 1340 KB
large/large_case_004.txt AC 76 ms 1288 KB
large/large_case_005.txt AC 74 ms 1308 KB
large/large_case_006.txt AC 75 ms 1328 KB
large/large_case_007.txt AC 72 ms 1340 KB
large/large_case_008.txt AC 71 ms 1420 KB
large/large_case_009.txt AC 72 ms 1328 KB
large/large_case_010.txt AC 32 ms 956 KB
large/large_case_011.txt AC 32 ms 1036 KB
large/large_case_012.txt AC 32 ms 1048 KB
large/large_case_013.txt AC 31 ms 1048 KB
large/large_case_014.txt AC 34 ms 900 KB
large/large_case_015.txt AC 32 ms 1044 KB
large/large_case_016.txt AC 32 ms 1036 KB
large/large_case_017.txt AC 30 ms 1036 KB
large/large_case_018.txt AC 30 ms 1032 KB
large/large_case_019.txt AC 31 ms 1040 KB
large/large_case_020.txt AC 73 ms 1336 KB
large/large_case_021.txt AC 75 ms 1272 KB
large/large_case_022.txt AC 73 ms 1420 KB
large/large_case_023.txt AC 73 ms 1336 KB
large/large_case_024.txt AC 72 ms 1428 KB
large/large_case_025.txt AC 73 ms 1332 KB
large/large_case_026.txt AC 73 ms 1340 KB
large/large_case_027.txt AC 73 ms 1292 KB
large/large_case_028.txt AC 72 ms 1324 KB
large/large_case_029.txt AC 72 ms 1344 KB
large/medium_case_000.txt AC 21 ms 792 KB
large/medium_case_001.txt AC 21 ms 784 KB
large/medium_case_002.txt AC 20 ms 796 KB
large/medium_case_003.txt AC 20 ms 792 KB
large/medium_case_004.txt AC 20 ms 788 KB
large/medium_case_005.txt AC 20 ms 780 KB
large/medium_case_006.txt AC 20 ms 780 KB
large/medium_case_007.txt AC 20 ms 780 KB
large/medium_case_008.txt AC 20 ms 760 KB
large/medium_case_009.txt AC 21 ms 672 KB
large/medium_case_010.txt AC 20 ms 672 KB
large/medium_case_011.txt AC 20 ms 780 KB
large/medium_case_012.txt AC 20 ms 792 KB
large/medium_case_013.txt AC 20 ms 664 KB
large/medium_case_014.txt AC 20 ms 780 KB
large/medium_case_015.txt AC 21 ms 780 KB
large/medium_case_016.txt AC 20 ms 684 KB
large/medium_case_017.txt AC 22 ms 792 KB
large/medium_case_018.txt AC 23 ms 676 KB
large/medium_case_019.txt AC 19 ms 780 KB
large/medium_case_020.txt AC 20 ms 632 KB
medium/case_000.txt AC 20 ms 792 KB
medium/case_001.txt AC 20 ms 792 KB
medium/case_002.txt AC 20 ms 792 KB
medium/case_003.txt AC 20 ms 704 KB
medium/case_004.txt AC 19 ms 784 KB
medium/case_005.txt AC 19 ms 776 KB
medium/case_006.txt AC 20 ms 776 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 700 KB
medium/case_010.txt AC 20 ms 632 KB
medium/case_011.txt AC 20 ms 636 KB
medium/case_012.txt AC 19 ms 688 KB
medium/case_013.txt AC 20 ms 784 KB
medium/case_014.txt AC 20 ms 792 KB
medium/case_015.txt AC 20 ms 776 KB
medium/case_016.txt AC 20 ms 812 KB
medium/case_017.txt AC 20 ms 796 KB
medium/case_018.txt AC 18 ms 780 KB
medium/case_019.txt AC 20 ms 788 KB
medium/case_020.txt AC 21 ms 784 KB
medium/case_021.txt AC 20 ms 784 KB
medium/case_022.txt AC 20 ms 776 KB
medium/case_023.txt AC 20 ms 792 KB
medium/medium_case_000.txt AC 21 ms 788 KB
medium/medium_case_001.txt AC 20 ms 788 KB
medium/medium_case_002.txt AC 19 ms 772 KB
medium/medium_case_003.txt AC 20 ms 692 KB
medium/medium_case_004.txt AC 20 ms 688 KB
medium/medium_case_005.txt AC 20 ms 784 KB
medium/medium_case_006.txt AC 20 ms 792 KB
medium/medium_case_007.txt AC 22 ms 784 KB
medium/medium_case_008.txt AC 20 ms 764 KB
medium/medium_case_009.txt AC 20 ms 788 KB
medium/medium_case_010.txt AC 20 ms 784 KB
medium/medium_case_011.txt AC 20 ms 756 KB
medium/medium_case_012.txt AC 20 ms 788 KB
medium/medium_case_013.txt AC 20 ms 764 KB
medium/medium_case_014.txt AC 20 ms 792 KB
medium/medium_case_015.txt AC 22 ms 660 KB
medium/medium_case_016.txt AC 20 ms 780 KB
medium/medium_case_017.txt AC 20 ms 788 KB
medium/medium_case_018.txt AC 22 ms 768 KB
medium/medium_case_019.txt AC 20 ms 784 KB
medium/medium_case_020.txt AC 20 ms 792 KB
small/case_000.txt AC 20 ms 664 KB
small/case_001.txt AC 20 ms 784 KB
small/case_002.txt AC 20 ms 632 KB
small/case_003.txt AC 20 ms 784 KB
small/case_004.txt AC 20 ms 788 KB
small/case_005.txt AC 21 ms 784 KB
small/case_006.txt AC 20 ms 632 KB
small/case_007.txt AC 20 ms 788 KB
small/case_008.txt AC 20 ms 652 KB
small/case_009.txt AC 20 ms 652 KB
small/case_010.txt AC 20 ms 780 KB
small/case_011.txt AC 20 ms 788 KB
small/case_012.txt AC 20 ms 792 KB
small/case_013.txt AC 20 ms 768 KB
small/case_014.txt AC 22 ms 644 KB
small/case_015.txt AC 19 ms 792 KB
small/case_016.txt AC 20 ms 772 KB
small/case_017.txt AC 20 ms 780 KB
small/case_018.txt AC 19 ms 780 KB
small/case_019.txt AC 22 ms 668 KB
small/case_020.txt AC 21 ms 792 KB
small/case_021.txt AC 20 ms 776 KB
small/case_022.txt AC 18 ms 788 KB
small/case_023.txt AC 20 ms 688 KB