atcoder 176E問題が解けません。
問題:https://atcoder.jp/contests/abc176/tasks/abc176_e
いろいろダメな点を修正してこのコードになったのですが、WAが4つでてしまいました。
間違っている点を教えていただけるとうれしいです。
c++
1#include<iostream> 2#include<algorithm> 3#include<string> 4#include<map> 5#include<iomanip> 6#include<vector> 7#include<fstream> 8#include<numeric> 9#define rep(i, n) for(int i=0; i<n; i++) 10using namespace std; 11typedef long long ll; 12using P = pair<int,int>; 13using T = tuple<int,int,int>; 14const int INF = 1e9; 15const int C = 1000000007; 16 17int main() { 18 int h, w, m; cin>>h>>w>>m; 19 20 vector<vector<int> > s(h, vector<int>(0)); 21 vector<vector<int> > t(w, vector<int>(0)); 22 int hi, wi; 23 24 rep(i, m){ 25 cin>>hi>>wi; 26 hi--; wi--; 27 s[hi].push_back(wi); 28 t[wi].push_back(hi); 29 } 30 int smax=0, tmax=0; 31 32 rep(i, h){ 33 smax=max(smax, int(s[i].size())); 34 //cout << "smax_length " << s[i].size() << endl; 35 } 36 rep(i, w) tmax=max(tmax, int(t[i].size())); 37 vector<int> scan(h, 0), tcan(w, 0); 38 rep(i, h){ 39 if(smax==s[i].size()) scan[i]=1; 40 } 41 rep(i, w){ 42 if(tmax==t[i].size()) tcan[i]=1; 43 } 44 int x=0, y=0; 45 rep(i, h){ 46 rep(j, s[i].size()){ 47 if(scan[i] && tcan[s[i][j]]) x++; 48 } 49 } 50 y = accumulate(scan.begin(), scan.end(), 0)*accumulate(tcan.begin(), tcan.end(), 0); 51 //cout << "x=" << x << " y=" << y << " (smax,tmax)=" << smax <<" "<<tmax <<endl; 52 if(x<y) cout << smax+tmax << endl; 53 else cout << smax+tmax-1 << endl; 54 return 0; 55} 56
提出は https://atcoder.jp/contests/abc176/submissions/18225935 だと思いますが、
[ in / out ]のところから入力値と期待値がダウンロードできるので、まずはWAとなっている項目のデータを使用してデバッグされてみては?
回答1件
あなたの回答
tips
プレビュー