Submission #410306
Source Code Expand
Copy
#include <cstdlib> #include <cmath> #include <climits> #include <cfloat> #include <map> #include <set> #include <iostream> #include <string> #include <vector> #include <algorithm> #include <sstream> #include <complex> #include <stack> #include <queue> #include <cstdio> #include <cstring> #include <iterator> #include <bitset> #include <unordered_set> #include <unordered_map> //#include <utility> //#include <memory> //#include <functional> //#include <deque> //#include <cctype> //#include <ctime> //#include <numeric> //#include <list> //#include <iomanip> //#if __cplusplus >= 201103L //#include <array> //#include <tuple> //#include <initializer_list> //#include <forward_list> // //#define cauto const auto& //#else //#endif using namespace std; typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; typedef vector<int> vint; typedef vector<vector<int> > vvint; typedef vector<long long> vll, vLL; typedef vector<vector<long long> > vvll, vvLL; #define VV(T) vector<vector< T > > template <class T> void initvv(vector<vector<T> > &v, int a, int b, const T &t = T()){ v.assign(a, vector<T>(b, t)); } template <class F, class T> void convert(const F &f, T &t){ stringstream ss; ss << f; ss >> t; } #define reep(i,a,b) for(int i=(a);i<(b);++i) #define rep(i,n) reep((i),0,(n)) #define ALL(v) (v).begin(),(v).end() #define PB push_back #define F first #define S second #define mkp make_pair #define RALL(v) (v).rbegin(),(v).rend() #define DEBUG #ifdef DEBUG #define dump(x) cout << #x << " = " << (x) << endl; #define debug(x) cout << #x << " = " << (x) << " (L" << __LINE__ << ")" << " " << __FILE__ << endl; #else #define dump(x) #define debug(x) #endif #define MOD 1000000007LL #define EPS 1e-8 static const int INF=1<<24; vector<pii> v; map<pair<pii,pii>,ll> ma; set<pair<pii,pii>> se; int w,h; int n; bool check(pair<pii,pii> p,pii a){ if(p.F.F<=a.F&&a.F<=p.S.F&&p.F.S<=a.S&&a.S<=p.S.S) return true; return false; } ll foo(pair<pii,pii> p){ if(se.find(p)!=se.end()) return ma[p]; ll ret=0LL; ll tmp=p.S.F-p.F.F+1+p.S.S-p.F.S; rep(i,n){ if(check(p,v[i])){ int x=v[i].F,y=v[i].S; ll t=0LL; if(x!=p.F.F&&y!=p.F.S) t+=foo(mkp(pii(p.F.F,p.F.S),pii(x-1,y-1))); if(x!=p.S.F&&y!=p.F.S) t+=foo(mkp(pii(x+1,p.F.S),pii(p.S.F,y-1))); if(x!=p.F.F&&y!=p.S.S) t+=foo(mkp(pii(p.F.F,y+1),pii(x-1,p.S.S))); if(x!=p.S.F&&y!=p.S.S) t+=foo(mkp(pii(x+1,y+1),pii(p.S.F,p.S.S))); ret=max(ret,tmp+t); } } se.insert(p); // cout<<p.F.F<<" "<<p.F.S<<" "<<p.S.F<<" "<<p.S.S<<" "<<ret<<endl; return ma[p]=ret; } void mainmain(){ cin>>w>>h; // int n; cin>>n; v=vector<pii>(n); rep(i,n){ cin>>v[i].F>>v[i].S; } ll ans=0; rep(i,n){ int x=v[i].F,y=v[i].S; ll t=0LL; pair<pii,pii> p; p.F=pii(1,1); p.S=pii(w,h); if(x!=p.F.F&&y!=p.F.S) t+=foo(mkp(pii(p.F.F,p.F.S),pii(x-1,y-1))); if(x!=p.S.F&&y!=p.F.S) t+=foo(mkp(pii(x+1,p.F.S),pii(p.S.F,y-1))); if(x!=p.F.F&&y!=p.S.S) t+=foo(mkp(pii(p.F.F,y+1),pii(x-1,p.S.S))); if(x!=p.S.F&&y!=p.S.S) t+=foo(mkp(pii(x+1,y+1),pii(p.S.F,p.S.S))); ans=max(ans,w+h-1+t); // cout<<i<<" "<<ans<<endl; } cout<<ans<<endl; } signed main() { mainmain(); }
Submission Info
Submission Time | |
---|---|
Task | D - 金塊ゲーム |
User | j_gui0121 |
Language | C++11 (GCC 4.8.1) |
Score | 100 |
Code Size | 3529 Byte |
Status | AC |
Exec Time | 72 ms |
Memory | 2260 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 80 / 80 | 19 / 19 | 1 / 1 | ||||||||
Status |
|
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
Subtask1 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt |
Subtask2 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt |
Subtask3 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask3_01.txt, subtask3_02.txt, subtask3_03.txt, subtask3_04.txt, subtask3_05.txt, subtask3_06.txt, subtask3_07.txt, subtask3_08.txt, subtask3_09.txt, subtask3_10.txt, subtask3_11.txt, subtask3_12.txt, subtask3_13.txt, subtask3_14.txt, subtask3_15.txt, subtask3_16.txt, subtask3_17.txt, subtask3_18.txt, subtask3_19.txt, subtask3_20.txt, subtask3_21.txt, subtask3_22.txt, subtask3_23.txt, subtask3_24.txt, subtask3_25.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 26 ms | 1044 KB |
sample_02.txt | AC | 30 ms | 1044 KB |
sample_03.txt | AC | 26 ms | 952 KB |
subtask1_01.txt | AC | 26 ms | 948 KB |
subtask1_02.txt | AC | 26 ms | 1052 KB |
subtask1_03.txt | AC | 27 ms | 1048 KB |
subtask1_04.txt | AC | 27 ms | 952 KB |
subtask1_05.txt | AC | 27 ms | 1044 KB |
subtask1_06.txt | AC | 26 ms | 1048 KB |
subtask1_07.txt | AC | 25 ms | 948 KB |
subtask1_08.txt | AC | 26 ms | 1044 KB |
subtask1_09.txt | AC | 26 ms | 1048 KB |
subtask1_10.txt | AC | 26 ms | 1044 KB |
subtask1_11.txt | AC | 26 ms | 1048 KB |
subtask1_12.txt | AC | 26 ms | 1048 KB |
subtask1_13.txt | AC | 26 ms | 1048 KB |
subtask1_14.txt | AC | 26 ms | 1044 KB |
subtask1_15.txt | AC | 26 ms | 1048 KB |
subtask1_16.txt | AC | 26 ms | 1048 KB |
subtask1_17.txt | AC | 26 ms | 1044 KB |
subtask1_18.txt | AC | 26 ms | 1052 KB |
subtask1_19.txt | AC | 25 ms | 1044 KB |
subtask1_20.txt | AC | 27 ms | 1048 KB |
subtask1_21.txt | AC | 26 ms | 1044 KB |
subtask1_22.txt | AC | 26 ms | 1040 KB |
subtask1_23.txt | AC | 29 ms | 1048 KB |
subtask1_24.txt | AC | 26 ms | 1044 KB |
subtask1_25.txt | AC | 26 ms | 1048 KB |
subtask2_01.txt | AC | 29 ms | 1172 KB |
subtask2_02.txt | AC | 28 ms | 1080 KB |
subtask2_03.txt | AC | 32 ms | 1208 KB |
subtask2_04.txt | AC | 33 ms | 1332 KB |
subtask2_05.txt | AC | 40 ms | 1460 KB |
subtask2_06.txt | AC | 43 ms | 1592 KB |
subtask2_07.txt | AC | 44 ms | 1588 KB |
subtask2_08.txt | AC | 44 ms | 1588 KB |
subtask2_09.txt | AC | 63 ms | 2104 KB |
subtask2_10.txt | AC | 64 ms | 2104 KB |
subtask2_11.txt | AC | 61 ms | 2104 KB |
subtask2_12.txt | AC | 67 ms | 2104 KB |
subtask2_13.txt | AC | 47 ms | 1588 KB |
subtask2_14.txt | AC | 50 ms | 1700 KB |
subtask2_15.txt | AC | 27 ms | 1044 KB |
subtask2_16.txt | AC | 43 ms | 1640 KB |
subtask2_17.txt | AC | 62 ms | 1972 KB |
subtask2_18.txt | AC | 66 ms | 2100 KB |
subtask2_19.txt | AC | 65 ms | 2104 KB |
subtask2_20.txt | AC | 63 ms | 2104 KB |
subtask2_21.txt | AC | 64 ms | 2096 KB |
subtask2_22.txt | AC | 64 ms | 2104 KB |
subtask2_23.txt | AC | 66 ms | 2104 KB |
subtask2_24.txt | AC | 66 ms | 2104 KB |
subtask2_25.txt | AC | 67 ms | 2100 KB |
subtask3_01.txt | AC | 25 ms | 1044 KB |
subtask3_02.txt | AC | 30 ms | 1180 KB |
subtask3_03.txt | AC | 27 ms | 1176 KB |
subtask3_04.txt | AC | 30 ms | 1192 KB |
subtask3_05.txt | AC | 40 ms | 1456 KB |
subtask3_06.txt | AC | 34 ms | 1308 KB |
subtask3_07.txt | AC | 35 ms | 1336 KB |
subtask3_08.txt | AC | 45 ms | 1588 KB |
subtask3_09.txt | AC | 49 ms | 1720 KB |
subtask3_10.txt | AC | 66 ms | 2100 KB |
subtask3_11.txt | AC | 67 ms | 2228 KB |
subtask3_12.txt | AC | 72 ms | 2228 KB |
subtask3_13.txt | AC | 70 ms | 2228 KB |
subtask3_14.txt | AC | 66 ms | 2104 KB |
subtask3_15.txt | AC | 66 ms | 2100 KB |
subtask3_16.txt | AC | 66 ms | 2100 KB |
subtask3_17.txt | AC | 70 ms | 2232 KB |
subtask3_18.txt | AC | 39 ms | 1504 KB |
subtask3_19.txt | AC | 65 ms | 2232 KB |
subtask3_20.txt | AC | 45 ms | 1592 KB |
subtask3_21.txt | AC | 71 ms | 2260 KB |
subtask3_22.txt | AC | 69 ms | 2228 KB |
subtask3_23.txt | AC | 68 ms | 2228 KB |
subtask3_24.txt | AC | 67 ms | 2148 KB |
subtask3_25.txt | AC | 66 ms | 2228 KB |