제출 #444695

#제출 시각아이디문제언어결과실행 시간메모리
444695The_Panonian_SailorT-Covering (eJOI19_covering)C++14
0 / 100
5 ms332 KiB
#include <iostream> #include <algorithm> #include <cstdlib> #include <vector> using namespace std; bool sortpair(pair<int,int>a,pair<int,int>b) { return (a.first<b.first && a.second<b.second); } int main() { long n,m; int temp,k,sum=0,MIN; cin>>m>>n; vector<vector<int>> grid(m); bool a[m][n] {false}; vector<int> r(4); pair<int,int> p[4]; for (int i=0; i<m; i++) { for(int j=0; j<n; j++) { cin>>temp; grid[i].push_back(temp); } } cin>>k; vector<pair<int,int>> spec(k); for(int i=0; i<k; i++) { cin>>spec[i].first>>spec[i].second; a[spec[i].first][spec[i].second]=true; } sort (spec.begin(), spec.end(), sortpair); for(int i=0; i<k; i++) { sum+=grid[spec[i].first][spec[i].second]; if(((a[spec[i].first-1][spec[i].second] || a[spec[i].first+1][spec[i].second]) &&(a[spec[i].first][spec[i].second-1] || a[spec[i].first][spec[i].second+1])) || ((a[spec[i].first-1][spec[i].second] && a[spec[i].first+1][spec[i].second]) || (a[spec[i].first][spec[i].second+1] && a[spec[i].first][spec[i].second-1]))) { cout<<"No1"<<endl; return 0; } if((spec[i].first==0 && spec[i].second==0) || (spec[i].first==0 && spec[i].second==n-1) || (spec[i].first==m-1 && spec[i].second==0) || (spec[i].first==m-1 && spec[i].second==n-1)) { cout<<"No2"<<endl; return 0; } else if(spec[i].first==0) { sum+=grid[spec[i].first][spec[i].second]; sum+=grid[spec[i].first][spec[i].second+1]; a[spec[i].first][spec[i].second+1]=true; sum+=grid[spec[i].first][spec[i].second-1]; a[spec[i].first][spec[i].second-1]=true; sum+=grid[spec[i].first+1][spec[i].second]; a[spec[i].first+1][spec[i].second]=true; } else if(spec[i].first==m-1) { sum+=grid[spec[i].first][spec[i].second]; sum+=grid[spec[i].first][spec[i].second+1]; a[spec[i].first][spec[i].second+1]=true; sum+=grid[spec[i].first][spec[i].second-1]; a[spec[i].first][spec[i].second-1]=true; sum+=grid[spec[i].first-1][spec[i].second]; a[spec[i].first-1][spec[i].second]=true; } else if(spec[i].second==0) { sum+=grid[spec[i].first][spec[i].second]; sum+=grid[spec[i].first+1][spec[i].second]; a[spec[i].first+1][spec[i].second]=true; sum+=grid[spec[i].first-1][spec[i].second]; a[spec[i].first-1][spec[i].second]=true; sum+=grid[spec[i].first][spec[i].second+1]; a[spec[i].first][spec[i].second+1]=true; } else if(spec[i].second==n-1) { sum+=grid[spec[i].first][spec[i].second]; sum+=grid[spec[i].first+1][spec[i].second]; a[spec[i].first+1][spec[i].second]=true; sum+=grid[spec[i].first-1][spec[i].second]; a[spec[i].first-1][spec[i].second]=true; sum+=grid[spec[i].first][spec[i].second-1]; a[spec[i].first][spec[i].second-1]=true; }else if(a[spec[i].first+1][spec[i].second+1]==true) { } else { if(spec[i].first<m-1 && !a[spec[i].first+1][spec[i].second]) { r[0]=grid[spec[i].first+1][spec[i].second]; a[spec[i].first+1][spec[i].second]=true; } if(spec[i].first>0 &&!a[spec[i].first-1][spec[i].second]) { r[1]=grid[spec[i].first-1][spec[i].second]; a[spec[i].first-1][spec[i].second]=true; } if(spec[i].second<n-1 && !a[spec[i].first][spec[i].second+1]) { r[2]=grid[spec[i].first][spec[i].second+1]; a[spec[i].first][spec[i].second+1]=true; } if(spec[i].second>0 && !a[spec[i].first][spec[i].second-1]) { r[3]=grid[spec[i].first][spec[i].second-1]; a[spec[i].first][spec[i].second-1]=true; } for(int t=0;t<4;t++) { if(r[t]<=r[0] || r[t]<=r[1] || r[t]<=r[2] || r[t]<=r[3]); { a[p[t].first][p[t].second]=false; MIN=r[t]; break; } } sum+=r[3]+r[2]+r[1]+r[0]-MIN; } } cout<<sum<<endl; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

covering.cpp: In function 'int main()':
covering.cpp:126:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
  126 |                 if(r[t]<=r[0] || r[t]<=r[1] || r[t]<=r[2] || r[t]<=r[3]);
      |                 ^~
covering.cpp:127:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  127 |                 {
      |                 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...