Submission #1092691

#TimeUsernameProblemLanguageResultExecution timeMemory
1092691alexander707070Boat (APIO16_boat)C++14
9 / 100
2073 ms323816 KiB
#include<bits/stdc++.h> #pragma GCC optimize ("O3") #pragma GCC target ("sse4") #define MAXN 507 using namespace std; const long long mod=1e9+7; int n,a[MAXN],b[MAXN]; vector<int> pos; map<int,bool> mp; map<int,int> where; long long dp[2][1000007]; long long pref[2][1000007]; long long sum(int id,int from,int to){ if(from>to)return 0; if(from>0)return (pref[id][to]-pref[id][from-1]); return pref[id][to]; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]>>b[i]; for(int f=a[i];f<=b[i];f++){ if(mp[f])continue; mp[f]=true; pos.push_back(f); } } pos.push_back(0); sort(pos.begin(),pos.end()); for(int i=0;i<pos.size();i++)where[pos[i]]=i; for(int i=0;i<pos.size();i++){ pref[0][i]=i+1; dp[0][i]=1; } for(int i=1;i<=n;i++){ for(int f=0;f<pos.size();f++){ dp[i%2][f]=(sum(1-i%2,where[a[i]]-1,min(f,where[b[i]])-1) + dp[1-i%2][f])%mod; pref[i%2][f]=dp[i%2][f]; if(f>0)pref[i%2][f]+=pref[i%2][f-1]; } } cout<<dp[n%2][pos.size()-1]-1<<"\n"; return 0; }

Compilation message (stderr)

boat.cpp: In function 'int main()':
boat.cpp:46:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |     for(int i=0;i<pos.size();i++)where[pos[i]]=i;
      |                 ~^~~~~~~~~~~
boat.cpp:48:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |     for(int i=0;i<pos.size();i++){
      |                 ~^~~~~~~~~~~
boat.cpp:53:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |         for(int f=0;f<pos.size();f++){
      |                     ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...