Submission #1232596
Source Code Expand
#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> #include <iomanip> #include <unordered_map> #include <unordered_set> #include <map> #include <set> using namespace std; int m,n; vector<vector<long long>> mem; vector<long long> a,b; vector<long long> sua,sub; long long solve(int i, int j){ if(mem[i][j]>-1)return mem[i][j]; long long res=0; if(i==m&&j==n)return 0; if(i==m){ int jp=j; while(jp<n){ res+=b[jp]; jp+=2; } mem[i][j]=res; return res; } if(j==n){ int ip=i; while(ip<m){ res+=a[ip]; ip+=2; } mem[i][j]=res; return res; } res=min(solve(i+1,j),solve(i,j+1)); res=sua[i]+sub[j]-res; mem[i][j]=res; // cout<<i<<" "<<j<<" "<<res<<endl; return res; } long long M=1000000007; int main(int argc, char const *argv[]) { cin>>m>>n; a=vector<long long>(m); b=vector<long long>(n); for(int i=0;i<m;++i)cin>>a[i]; for(int i=0;i<n;++i)cin>>b[i]; sua=vector<long long>(m+1); sub=vector<long long>(n+1); for(int i=m-1;i>-1;--i)sua[i]=sua[i+1]+a[i]; for(int i=n-1;i>-1;--i)sub[i]=sub[i+1]+b[i]; mem=vector<vector<long long>>(m+1,vector<long long>(n+1,-1)); cout<<solve(0,0)<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - ゲーム |
User | pillow97 |
Language | C++14 (GCC 5.4.1) |
Score | 3 |
Code Size | 1304 Byte |
Status | AC |
Exec Time | 25 ms |
Memory | 8320 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 3 / 3 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 00, 01, 02, 90, 91 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00 | AC | 1 ms | 256 KB |
01 | AC | 16 ms | 5760 KB |
02 | AC | 25 ms | 8320 KB |
90 | AC | 1 ms | 256 KB |
91 | AC | 1 ms | 256 KB |