제출 #105767

#제출 시각아이디문제언어결과실행 시간메모리
105767Pro_ktmrBoat (APIO16_boat)C++14
9 / 100
2060 ms525312 KiB
#include"bits/stdc++.h"
using namespace std;
#define LL long long
#define REP(i, n) for(int (i)=0; (i)<(n); (i)++)
#define PB push_back
#define MP make_pair
#define MOD 1000000007

int N;
int a[505], b[505];
vector<int> zaatu;

int dp[2][1000505];

int main(){

	scanf("%d", &N);
	for(int i=0; i<N; i++){
		scanf("%d%d", a+i, b+i);
		b[i]++;
		//zaatu.PB(a[i]);
		//zaatu.PB(b[i]);
		for(int j=a[i]; j<b[i]; j++) zaatu.PB(j);
	}
	zaatu.PB(0);
	zaatu.PB(INT_MAX);
	sort(zaatu.begin(), zaatu.end());
	zaatu.erase(unique(zaatu.begin(), zaatu.end()), zaatu.end());

	for(int i=0; i<zaatu.size(); i++){
		dp[N%2][i] = 1;
	}
	for(int i=N-1; i>=0; i--){
		LL tmp = 0;
		for(int j=zaatu.size()-2; j>=0; j--){
			LL ans = dp[(i+1)%2][j];
			if(a[i] <= zaatu[j+1] && zaatu[j+1] < b[i]) tmp += dp[(i+1)%2][j+1];
			tmp %= MOD;
			dp[i%2][j] = (ans + tmp) % MOD;
		}
	}

	cout << dp[0][0] - 1 << endl;
}

컴파일 시 표준 에러 (stderr) 메시지

boat.cpp: In function 'int main()':
boat.cpp:30:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<zaatu.size(); i++){
               ~^~~~~~~~~~~~~
boat.cpp:17:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &N);
  ~~~~~^~~~~~~~~~
boat.cpp:19:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d", a+i, b+i);
   ~~~~~^~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...