Submission #1186827

#TimeUsernameProblemLanguageResultExecution timeMemory
1186827asli_bgBoat (APIO16_boat)C++20
0 / 100
107 ms4412 KiB
#include <bits/stdc++.h> using namespace std; #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; #define int long long typedef pair<int,int> pii; typedef vector<int> vi; typedef vector<pii> vii; typedef vector<bool> vb; typedef tree<pii,null_type,less<pii>,rb_tree_tag, tree_order_statistics_node_update> oset; #define fi first #define se second #define pb push_back #define pf push_front #define mid (l+r)/2 #define all(x) x.begin(),x.end() #define FOR(i,a) for(int i=0;i<(a);i++) #define FORE(i,a,b) for(int i=(a);i<(b);i++) #define cont(x) for(auto el:x) cout<<el<<' ';cout<<endl; #define contp(x) for(auto el:x) cout<<el.fi<<'-'<<el.se<<' ';cout<<endl; #define sp <<" "<< #define DEBUG(x) cout<<(#x) sp x<<endl #define carp(a,b) (((a%MOD)*(b%MOD))%MOD) #define topla(a,b) (((a%MOD)+(b%MOD))%MOD) const int INF=1e18; const int MAXN=505; const int MOD=1e9+7; int dp[MAXN][MAXN], tut[MAXN][MAXN]; signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin>>n; vi a(n+1),b(n+1); FORE(i,1,n+1) cin>>a[i]>>b[i]; FOR(i,n+1){ dp[i][0]=0; tut[i][0]=1; FORE(j,1,n+1){ dp[i][j]=INF; tut[i][j]=0; } } int ans=0; FORE(i,1,n+1){ FORE(j,1,i){ FORE(tane,1,j+1){ if(dp[j][tane]==INF) continue; if(dp[j][tane]>b[i]) continue; tut[i][tane+1]=topla(tut[i][tane+1],tut[j][tane]); ans=topla(ans,tut[j][tane]); if(dp[j][tane]<=a[i]){ dp[i][tane+1]=min(dp[i][tane+1],a[i]); } else{ dp[i][tane+1]=min(dp[i][tane+1],dp[j][tane]); } } } if(dp[i][1]==INF){ tut[i][1]=1; ans++; ans%=MOD; } dp[i][1]=min(dp[i][1],a[i]); } cout<<ans<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...