?
# | Author | Problem | Lang | Verdict | Time | Memory | Sent | Judged | |
---|---|---|---|---|---|---|---|---|---|
187409796 |
Practice: DaiRuiChen007 |
1772F - 3 | C++14 (GCC 6-32) | Accepted | 31 ms | 120 KB | 2022-12-31 08:48:31 | 2022-12-31 08:48:32 |
// LUOGU_RID: 98333189 #include<bits/stdc++.h> #define pii pair<int,int> using namespace std; const int MAXN=31,MAXS=1001,MAXK=101; int n,m,k,id[MAXN][MAXN]; struct node { int id,cnt; bool a[MAXN][MAXN]; inline bool valid(int i,int j) { return a[i][j]!=a[i-1][j]&&a[i][j]!=a[i+1][j]&&a[i][j]!=a[i][j-1]&&a[i][j]!=a[i][j+1]; } inline friend bool operator <(const node &A,const node &B) { return A.cnt>B.cnt; } } pic[MAXK]; signed main() { scanf("%d%d%d",&n,&m,&k); int cnt=0; for(int i=1;i<=n;++i) { for(int j=1;j<=m;++j) { id[i][j]=++cnt; } } for(int t=0;t<=k;++t) { pic[t].id=t+1; for(int i=1;i<=n;++i) { for(int j=1;j<=m;++j) { scanf("%1d",&pic[t].a[i][j]); } } for(int i=2;i<n;++i) { for(int j=2;j<m;++j) { if(pic[t].valid(i,j)) ++pic[t].cnt; } } } sort(pic,pic+k+1); vector <pii> ans; for(int t=1;t<=k;++t) { for(int i=2;i<n;++i) { for(int j=2;j<m;++j) { if(pic[t].a[i][j]!=pic[t-1].a[i][j]) { ans.push_back(make_pair(i,j)); } } } ans.push_back(make_pair(pic[t].id,0)); } printf("%d\n%d\n",pic[0].id,(int)ans.size()); for(auto oper:ans) { if(oper.second!=0) printf("1 %d %d\n",oper.first,oper.second); else printf("2 %d\n",oper.first); } return 0; }
?
?
?
?