Submission #2148279
Source Code Expand
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> P; typedef pair<int,P> P1; typedef pair<P,P> P2; #define pu push #define pb push_back #define mp make_pair #define eps 1e-7 #define INF 1000000000 #define mod 1000000007 #define fi first #define sc second #define rep(i,x) for(int i=0;i<x;i++) #define SORT(x) sort(x.begin(),x.end()) #define ERASE(x) x.erase(unique(x.begin(),x.end()),x.end()) #define POSL(x,v) (lower_bound(x.begin(),x.end(),v)-x.begin()) #define POSU(x,v) (upper_bound(x.begin(),x.end(),v)-x.begin()) int n,m,x,y; char f[55][55]; int rui[55][55]; int calc(int a,int b,int c,int d){ return rui[b][d]-rui[a-1][d]-rui[b][c-1]+rui[a-1][c-1]; } int dp[45][45][45][45]; int rec(int a,int b,int c,int d){ if(dp[a][b][c][d] < 100000) return dp[a][b][c][d]; int &ret = dp[a][b][c][d]; ret = min(calc(a,x,c,y),ret); ret = min(calc(a,x,y,d),ret); ret = min(calc(x,b,c,y),ret); ret = min(calc(x,b,y,d),ret); for(int X=x;X<=b;X++) for(int Y=y;Y<=d;Y++){ if(X==b && Y==d) continue; ret = min(ret,calc(X+1,b,c,Y)+calc(a,X,Y+1,d)+rec(a,X,c,Y)); } for(int X=x;X<=b;X++) for(int Y=c;Y<=y;Y++){ if(X==b && Y==c) continue; ret = min(ret,calc(X+1,b,Y,d)+calc(a,X,c,Y-1)+rec(a,X,Y,d)); } for(int X=a;X<=x;X++) for(int Y=y;Y<=d;Y++){ if(X==a && Y==d) continue; ret = min(ret,calc(a,X-1,c,Y)+calc(X,b,Y+1,d)+rec(X,b,c,Y)); } for(int X=a;X<=x;X++) for(int Y=c;Y<=y;Y++){ if(X==a && Y==c) continue; ret = min(ret,calc(a,X-1,Y,d)+calc(X,b,c,Y-1)+rec(X,b,Y,d)); } return ret; } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ string str; cin>>str; for(int j=1;j<=m;j++){ f[i][j] = str[j-1]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(f[i][j] == 'P'){ x = i; y = j; } rui[i][j] = (f[i][j]=='#'?1:0); rui[i][j] += rui[i-1][j]; rui[i][j] += rui[i][j-1]; rui[i][j] -= rui[i-1][j-1]; } } rep(i,45)rep(j,45)rep(k,45)rep(l,45)dp[i][j][k][l] = INF; cout << rec(1,n,1,m) << endl; }
Submission Info
Submission Time | |
---|---|
Task | H - Poor Penguin |
User | IH19980412 |
Language | C++14 (GCC 5.4.1) |
Score | 1600 |
Code Size | 2063 Byte |
Status | AC |
Exec Time | 849 ms |
Memory | 16384 KB |
Judge Result
Set Name | sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1600 / 1600 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
sample | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt |
All | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, 01-31.txt, 01-32.txt, 01-33.txt, 01-34.txt, 01-35.txt, 01-36.txt, 01-37.txt, 01-38.txt, 01-39.txt, 01-40.txt, 01-41.txt, 01-42.txt, 01-43.txt, 01-44.txt, 01-45.txt, 01-46.txt, 01-47.txt, 01-48.txt, 01-49.txt, 01-50.txt, 01-51.txt, 01-52.txt, 01-53.txt, 01-54.txt, 01-55.txt, 01-56.txt, 01-57.txt, 01-58.txt, 01-59.txt, 01-60.txt, 01-61.txt, 01-62.txt, 01-63.txt, 01-64.txt, 01-65.txt, 01-66.txt, 01-67.txt, 01-68.txt, 01-69.txt, 01-70.txt, 01-71.txt, 01-72.txt, 01-73.txt, 01-74.txt, 01-75.txt, 01-76.txt, 01-77.txt, 01-78.txt, 01-79.txt, 01-80.txt, 01-81.txt, 01-82.txt, 01-83.txt, 01-84.txt, 01-85.txt, 01-86.txt, 01-87.txt, 01-88.txt, 01-89.txt, 01-90.txt, 01-91.txt, sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01-01.txt | AC | 8 ms | 16256 KB |
01-02.txt | AC | 8 ms | 16256 KB |
01-03.txt | AC | 20 ms | 16256 KB |
01-04.txt | AC | 513 ms | 16256 KB |
01-05.txt | AC | 196 ms | 16256 KB |
01-06.txt | AC | 197 ms | 16256 KB |
01-07.txt | AC | 848 ms | 16256 KB |
01-08.txt | AC | 847 ms | 16256 KB |
01-09.txt | AC | 848 ms | 16256 KB |
01-10.txt | AC | 847 ms | 16256 KB |
01-11.txt | AC | 849 ms | 16256 KB |
01-12.txt | AC | 849 ms | 16256 KB |
01-13.txt | AC | 849 ms | 16256 KB |
01-14.txt | AC | 848 ms | 16256 KB |
01-15.txt | AC | 848 ms | 16256 KB |
01-16.txt | AC | 8 ms | 16256 KB |
01-17.txt | AC | 8 ms | 16256 KB |
01-18.txt | AC | 714 ms | 16256 KB |
01-19.txt | AC | 793 ms | 16256 KB |
01-20.txt | AC | 819 ms | 16256 KB |
01-21.txt | AC | 830 ms | 16256 KB |
01-22.txt | AC | 693 ms | 16256 KB |
01-23.txt | AC | 827 ms | 16256 KB |
01-24.txt | AC | 793 ms | 16256 KB |
01-25.txt | AC | 835 ms | 16256 KB |
01-26.txt | AC | 827 ms | 16256 KB |
01-27.txt | AC | 816 ms | 16256 KB |
01-28.txt | AC | 507 ms | 16256 KB |
01-29.txt | AC | 742 ms | 16256 KB |
01-30.txt | AC | 583 ms | 16256 KB |
01-31.txt | AC | 473 ms | 16256 KB |
01-32.txt | AC | 614 ms | 16256 KB |
01-33.txt | AC | 804 ms | 16256 KB |
01-34.txt | AC | 722 ms | 16256 KB |
01-35.txt | AC | 778 ms | 16256 KB |
01-36.txt | AC | 844 ms | 16256 KB |
01-37.txt | AC | 716 ms | 16256 KB |
01-38.txt | AC | 801 ms | 16256 KB |
01-39.txt | AC | 842 ms | 16256 KB |
01-40.txt | AC | 753 ms | 16256 KB |
01-41.txt | AC | 733 ms | 16256 KB |
01-42.txt | AC | 735 ms | 16256 KB |
01-43.txt | AC | 769 ms | 16256 KB |
01-44.txt | AC | 814 ms | 16384 KB |
01-45.txt | AC | 652 ms | 16256 KB |
01-46.txt | AC | 659 ms | 16256 KB |
01-47.txt | AC | 810 ms | 16256 KB |
01-48.txt | AC | 848 ms | 16256 KB |
01-49.txt | AC | 836 ms | 16256 KB |
01-50.txt | AC | 834 ms | 16256 KB |
01-51.txt | AC | 791 ms | 16256 KB |
01-52.txt | AC | 795 ms | 16256 KB |
01-53.txt | AC | 694 ms | 16256 KB |
01-54.txt | AC | 843 ms | 16256 KB |
01-55.txt | AC | 761 ms | 16256 KB |
01-56.txt | AC | 820 ms | 16256 KB |
01-57.txt | AC | 810 ms | 16256 KB |
01-58.txt | AC | 764 ms | 16256 KB |
01-59.txt | AC | 845 ms | 16256 KB |
01-60.txt | AC | 780 ms | 16256 KB |
01-61.txt | AC | 829 ms | 16256 KB |
01-62.txt | AC | 633 ms | 16256 KB |
01-63.txt | AC | 812 ms | 16256 KB |
01-64.txt | AC | 786 ms | 16256 KB |
01-65.txt | AC | 846 ms | 16256 KB |
01-66.txt | AC | 780 ms | 16256 KB |
01-67.txt | AC | 800 ms | 16256 KB |
01-68.txt | AC | 839 ms | 16256 KB |
01-69.txt | AC | 768 ms | 16256 KB |
01-70.txt | AC | 752 ms | 16256 KB |
01-71.txt | AC | 842 ms | 16256 KB |
01-72.txt | AC | 709 ms | 16256 KB |
01-73.txt | AC | 835 ms | 16256 KB |
01-74.txt | AC | 829 ms | 16256 KB |
01-75.txt | AC | 790 ms | 16256 KB |
01-76.txt | AC | 849 ms | 16256 KB |
01-77.txt | AC | 694 ms | 16256 KB |
01-78.txt | AC | 674 ms | 16384 KB |
01-79.txt | AC | 839 ms | 16256 KB |
01-80.txt | AC | 764 ms | 16256 KB |
01-81.txt | AC | 809 ms | 16256 KB |
01-82.txt | AC | 699 ms | 16256 KB |
01-83.txt | AC | 836 ms | 16256 KB |
01-84.txt | AC | 764 ms | 16256 KB |
01-85.txt | AC | 814 ms | 16256 KB |
01-86.txt | AC | 700 ms | 16256 KB |
01-87.txt | AC | 782 ms | 16256 KB |
01-88.txt | AC | 795 ms | 16256 KB |
01-89.txt | AC | 809 ms | 16256 KB |
01-90.txt | AC | 814 ms | 16256 KB |
01-91.txt | AC | 594 ms | 16256 KB |
sample-01.txt | AC | 8 ms | 16256 KB |
sample-02.txt | AC | 8 ms | 16256 KB |
sample-03.txt | AC | 844 ms | 16256 KB |
sample-04.txt | AC | 8 ms | 16256 KB |