Submission #265543

# Submission time Handle Problem Language Result Execution time Memory
265543 2020-08-15T00:34:50 Z kaage Boat (APIO16_boat) C++17
31 / 100
1259 ms 524292 KB
#line 2 "/Users/kaage/Desktop/ProgrammingWorkspace/library/other/template.hpp"
#define _CRT_SECURE_NO_WARNINGS
#pragma target("avx2")
#pragma optimize("O3")
#pragma optimize("unroll-loops")
#include <algorithm>
#include <bitset>
#include <cassert>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <ctime>
#include <deque>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <list>
#include <map>
#include <memory>
#include <queue>
#include <random>
#include <set>
#include <stack>
#include <string>
#include <string.h>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
#define rep(i,n) for(int i=0;i<(n);i++)
#define REP(i,n) for(int i=1;i<=(n);i++)
#define all(V) V.begin(),V.end()
typedef long long lint;
typedef unsigned long long ulint;
typedef std::pair<int, int> P;
typedef std::pair<lint, lint> LP;
constexpr int INF = INT_MAX/2;
constexpr lint LINF = LLONG_MAX/2;
constexpr double eps = DBL_EPSILON;
constexpr double PI=3.141592653589793238462643383279;
template<class T>
class prique :public std::priority_queue<T, std::vector<T>, std::greater<T>> {};
template <class T, class U>
inline bool chmax(T& lhs, const U& rhs) {
	if (lhs < rhs) {
		lhs = rhs;
		return 1;
	}
	return 0;
}
template <class T, class U>
inline bool chmin(T& lhs, const U& rhs) {
	if (lhs > rhs) {
		lhs = rhs;
		return 1;
	}
	return 0;
}
inline lint gcd(lint a, lint b) {
	while (b) {
		lint c = a;
		a = b; b = c % b;
	}
	return a;
}
inline lint lcm(lint a, lint b) {
	return a / gcd(a, b) * b;
}
bool isprime(lint n) {
	if (n == 1)return false;
	for (int i = 2; i * i <= n; i++) {
		if (n % i == 0)return false;
	}
	return true;
}
template<typename T>
T mypow(T a, lint b) {
	T res(1);
	while(b){
		if(b&1)res*=a;
		a*=a;
		b>>=1;
	}
	return res;
}
lint modpow(lint a, lint b, lint m) {
	lint res(1);
	while(b){
		if(b&1){
			res*=a;res%=m;
		}
		a*=a;a%=m;
		b>>=1;
	}
	return res;
}
template<typename T>
void printArray(std::vector<T>& vec) {
	rep(i, vec.size()){
		std::cout << vec[i];
		std::cout<<(i==(int)vec.size()-1?"\n":" ");
	}
}
template<typename T>
void printArray(T l, T r) {
	T rprev = std::prev(r);
	for (T i = l; i != rprev; i++) {
		std::cout << *i << " ";
	}
	std::cout << *rprev << std::endl;
}
LP extGcd(lint a,lint b) {
	if(b==0)return {1,0};
	LP s=extGcd(b,a%b);
	std::swap(s.first,s.second);
	s.second-=a/b*s.first;
	return s;
}
LP ChineseRem(const lint& b1,const lint& m1,const lint& b2,const lint& m2) {
	lint p=extGcd(m1,m2).first;
	lint tmp=(b2-b1)*p%m2;
	lint r=(b1+m1*tmp+m1*m2)%(m1*m2);
	return std::make_pair(r,m1*m2);
}
/*template<typename F>
inline constexpr decltype(auto) lambda_fix(F&& f){
	return [f=std::forward<F>(f)](auto&&... args){
		return f(f,std::forward<decltype(args)>(args)...);
	};
}*/
#line 3 "/Users/kaage/Desktop/ProgrammingWorkspace/library/algebraic/ModInt.hpp"
class ModInt {
	lint value;
public:
	static unsigned int modulo;
	ModInt() : value(0) {}
	template<typename T>
	ModInt(T value = 0) : value(value) {
		if (value < 0)value = -(lint)(-value % modulo) + modulo;
		this->value = value % modulo;
	}
	static inline void setMod(const unsigned int& mod){modulo=mod;}
	inline ModInt inv()const{return mypow(*this,modulo-2);}
	inline operator int()const { return value; }
	inline ModInt& operator+=(const ModInt& x) {
		value += x.value;
		if (value >= modulo)value -= modulo;
		return *this;
	}
	inline ModInt& operator++() {
		if (value == modulo - 1)value = 0;
		else value++;
		return *this;
	}
	inline ModInt operator-()const {
		return ModInt(0) -= *this;
	}
	inline ModInt& operator-=(const ModInt& x) {
		value -= x.value;
		if (value < 0)value += modulo;
		return *this;
	}
	inline ModInt& operator--() {
		if (value == 0)value = modulo - 1;
		else value--;
		return *this;
	}
	inline ModInt& operator*=(const ModInt& x) {
		value = value * x.value % modulo;
		return *this;
	}
	inline ModInt& operator/=(const ModInt& rhs) {
		return *this*=rhs.inv();
	}
	template<typename T> ModInt operator+(const T& rhs)const { return ModInt(*this) += rhs; }
	template<typename T> ModInt& operator+=(const T& rhs) { return operator+=(ModInt(rhs)); }
	template<typename T> ModInt operator-(const T& rhs)const { return ModInt(*this) -= rhs; }
	template<typename T> ModInt& operator-=(const T& rhs) { return operator-=(ModInt(rhs)); }
	template<typename T> ModInt operator*(const T& rhs)const { return ModInt(*this) *= rhs; }
	template<typename T> ModInt& operator*=(const T& rhs) { return operator*=(ModInt(rhs)); }
	template<typename T> ModInt operator/(const T& rhs)const { return ModInt(*this) /= rhs; }
	template<typename T> ModInt& operator/=(const T& rhs) { return operator/=(ModInt(rhs)); }
};
unsigned int ModInt::modulo=1000000007;
std::istream& operator>>(std::istream& ist, ModInt& x) {
	lint a;
	ist >> a;
	x = a;
	return ist;
}
#line 3 "main.cpp"
int n,a[510],b[510];
ModInt dp[2][1000010];
int main(){
	std::cin>>n;
	std::vector<int> vec;
	REP(i,n){
		std::cin>>a[i]>>b[i];
		for(int j=a[i];j<=b[i];j++)vec.push_back(j);
	}
	std::sort(all(vec));
	vec.erase(std::unique(all(vec)),vec.end());
	REP(i,n){
		a[i]=std::lower_bound(all(vec),a[i])-vec.begin()+1;
		b[i]=std::lower_bound(all(vec),b[i])-vec.begin()+1;
	}
	dp[0][0]=1;
	REP(i,n){
		ModInt sum=0;
		rep(j,vec.size()+1){
			if(b[i]<j)break;
			if(a[i]<=j)dp[1][j]+=sum;
			sum+=dp[0][j];
		}
		rep(j,vec.size()+1){
			dp[0][j]+=dp[1][j];
			dp[1][j]=0;
		}
	}
	ModInt ans=0;
	REP(i,vec.size())ans+=dp[0][i];
	std::cout<<ans<<std::endl;
}

Compilation message

/Users/kaage/Desktop/ProgrammingWorkspace/library/other/template.hpp:3: warning: ignoring #pragma target  [-Wunknown-pragmas]
/Users/kaage/Desktop/ProgrammingWorkspace/library/other/template.hpp:4: warning: ignoring #pragma optimize  [-Wunknown-pragmas]
/Users/kaage/Desktop/ProgrammingWorkspace/library/other/template.hpp:5: warning: ignoring #pragma optimize  [-Wunknown-pragmas]
main.cpp: In function 'int main()':
/Users/kaage/Desktop/ProgrammingWorkspace/library/other/template.hpp:33:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
main.cpp:21:3: note: in expansion of macro 'rep'
/Users/kaage/Desktop/ProgrammingWorkspace/library/other/template.hpp:33:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
main.cpp:26:3: note: in expansion of macro 'rep'
/Users/kaage/Desktop/ProgrammingWorkspace/library/other/template.hpp:34:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
main.cpp:32:2: note: in expansion of macro 'REP'
# Verdict Execution time Memory Grader output
1 Correct 9 ms 16000 KB Output is correct
2 Correct 9 ms 16000 KB Output is correct
3 Correct 10 ms 16000 KB Output is correct
4 Correct 9 ms 16000 KB Output is correct
5 Correct 10 ms 16000 KB Output is correct
6 Correct 10 ms 16000 KB Output is correct
7 Correct 10 ms 16000 KB Output is correct
8 Correct 10 ms 16000 KB Output is correct
9 Correct 9 ms 16000 KB Output is correct
10 Correct 10 ms 16000 KB Output is correct
11 Correct 10 ms 16000 KB Output is correct
12 Correct 10 ms 16000 KB Output is correct
13 Correct 10 ms 16000 KB Output is correct
14 Correct 9 ms 16000 KB Output is correct
15 Correct 10 ms 16000 KB Output is correct
16 Correct 10 ms 16000 KB Output is correct
17 Correct 10 ms 16000 KB Output is correct
18 Correct 12 ms 16000 KB Output is correct
19 Correct 9 ms 16000 KB Output is correct
20 Correct 9 ms 16000 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 16000 KB Output is correct
2 Correct 9 ms 16000 KB Output is correct
3 Correct 10 ms 16000 KB Output is correct
4 Correct 9 ms 16000 KB Output is correct
5 Correct 10 ms 16000 KB Output is correct
6 Correct 10 ms 16000 KB Output is correct
7 Correct 10 ms 16000 KB Output is correct
8 Correct 10 ms 16000 KB Output is correct
9 Correct 9 ms 16000 KB Output is correct
10 Correct 10 ms 16000 KB Output is correct
11 Correct 10 ms 16000 KB Output is correct
12 Correct 10 ms 16000 KB Output is correct
13 Correct 10 ms 16000 KB Output is correct
14 Correct 9 ms 16000 KB Output is correct
15 Correct 10 ms 16000 KB Output is correct
16 Correct 10 ms 16000 KB Output is correct
17 Correct 10 ms 16000 KB Output is correct
18 Correct 12 ms 16000 KB Output is correct
19 Correct 9 ms 16000 KB Output is correct
20 Correct 9 ms 16000 KB Output is correct
21 Correct 53 ms 20208 KB Output is correct
22 Correct 54 ms 20208 KB Output is correct
23 Correct 60 ms 20208 KB Output is correct
24 Correct 53 ms 20208 KB Output is correct
25 Correct 54 ms 20208 KB Output is correct
26 Correct 55 ms 20208 KB Output is correct
27 Correct 55 ms 20208 KB Output is correct
28 Correct 54 ms 20208 KB Output is correct
29 Correct 55 ms 20208 KB Output is correct
30 Correct 1083 ms 20240 KB Output is correct
31 Correct 1110 ms 20208 KB Output is correct
32 Correct 1118 ms 20208 KB Output is correct
33 Correct 1187 ms 20208 KB Output is correct
34 Correct 1132 ms 20208 KB Output is correct
35 Correct 1053 ms 20208 KB Output is correct
36 Correct 1094 ms 20208 KB Output is correct
37 Correct 1123 ms 20372 KB Output is correct
38 Correct 1259 ms 20208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 613 ms 524292 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 9 ms 16000 KB Output is correct
2 Correct 9 ms 16000 KB Output is correct
3 Correct 10 ms 16000 KB Output is correct
4 Correct 9 ms 16000 KB Output is correct
5 Correct 10 ms 16000 KB Output is correct
6 Correct 10 ms 16000 KB Output is correct
7 Correct 10 ms 16000 KB Output is correct
8 Correct 10 ms 16000 KB Output is correct
9 Correct 9 ms 16000 KB Output is correct
10 Correct 10 ms 16000 KB Output is correct
11 Correct 10 ms 16000 KB Output is correct
12 Correct 10 ms 16000 KB Output is correct
13 Correct 10 ms 16000 KB Output is correct
14 Correct 9 ms 16000 KB Output is correct
15 Correct 10 ms 16000 KB Output is correct
16 Correct 10 ms 16000 KB Output is correct
17 Correct 10 ms 16000 KB Output is correct
18 Correct 12 ms 16000 KB Output is correct
19 Correct 9 ms 16000 KB Output is correct
20 Correct 9 ms 16000 KB Output is correct
21 Correct 53 ms 20208 KB Output is correct
22 Correct 54 ms 20208 KB Output is correct
23 Correct 60 ms 20208 KB Output is correct
24 Correct 53 ms 20208 KB Output is correct
25 Correct 54 ms 20208 KB Output is correct
26 Correct 55 ms 20208 KB Output is correct
27 Correct 55 ms 20208 KB Output is correct
28 Correct 54 ms 20208 KB Output is correct
29 Correct 55 ms 20208 KB Output is correct
30 Correct 1083 ms 20240 KB Output is correct
31 Correct 1110 ms 20208 KB Output is correct
32 Correct 1118 ms 20208 KB Output is correct
33 Correct 1187 ms 20208 KB Output is correct
34 Correct 1132 ms 20208 KB Output is correct
35 Correct 1053 ms 20208 KB Output is correct
36 Correct 1094 ms 20208 KB Output is correct
37 Correct 1123 ms 20372 KB Output is correct
38 Correct 1259 ms 20208 KB Output is correct
39 Runtime error 613 ms 524292 KB Execution killed with signal 9
40 Halted 0 ms 0 KB -