結果
問題 | No.1130 Grid Numbers |
ユーザー | Mat_h |
提出日時 | 2022-01-07 14:01:05 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 6,105 bytes |
コンパイル時間 | 2,265 ms |
コンパイル使用メモリ | 186,992 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-09 01:40:50 |
合計ジャッジ時間 | 3,089 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
5,248 KB |
testcase_01 | AC | 2 ms
5,248 KB |
testcase_02 | AC | 2 ms
5,248 KB |
testcase_03 | AC | 2 ms
5,248 KB |
testcase_04 | AC | 1 ms
5,248 KB |
testcase_05 | AC | 2 ms
5,248 KB |
testcase_06 | AC | 2 ms
5,248 KB |
testcase_07 | AC | 2 ms
5,248 KB |
testcase_08 | AC | 2 ms
5,248 KB |
testcase_09 | AC | 2 ms
5,248 KB |
testcase_10 | AC | 2 ms
5,248 KB |
testcase_11 | AC | 1 ms
5,248 KB |
ソースコード
#include<bits/stdc++.h> using namespace std; const int MAX = 510000; const int MOD = 1000000007; const double PI = 3.14159265358979323846264338327950288; long long fac[MAX], finv[MAX], inv[MAX]; #define _GLIBCXX_DEBUG #define int long long #define _yes {cout<<"yes"<<endl;} #define _no {cout<<"no"<<endl;} #define _Yes {cout<<"Yes"<<endl;} #define _No {cout<<"No"<<endl;} #define _YES {cout<<"YES"<<endl;} #define _NO {cout<<"NO"<<endl;} #define _ans {cout<<ans<<endl;} #define _count {cout<<count<<endl;} #define rep(i,n) for(int i=0;i<n;i++) #define rep1(i,n) for(int i=1;i<n;i++) #define rrep(i,n) for(int i=n-1; i>=0; i--) #define maprep(itr,m) for(auto itr=m.begin();itr!=m.end();itr++) #define ALL(obj) (obj).begin(), (obj).end() #define rALL(obj) (obj).rbegin(), (obj).rend() #define fore(x,a) for(auto &x:a) #define forin(a) for(auto &x:a){cin>>x;} #define forvin(a) for(auto &x:a){for(auto &g:x){cin>>g;}} #define inin(n) int n;cin>>n; #define stin(s) string s;cin>>s; #define chin(c) char c;cin>>c; #define dbin(d) double d;cin>>d; using ll = long long; using vb = vector<bool>; using vc = vector<char>; using vd = vector<double>; using vi = vector<int>; using vs = vector<string>; using si = set<int>; using ss=set<string>; using sd = set<double>; using qi = queue<int>; using dqi = deque<int>; using dqc = deque<char>; using vvc = vector<vc>; using vvd = vector<vd>; using vvi = vector<vi>; using vvs = vector<vs>; using vvvi = vector<vector<vector<int>>>; using pii = pair<int, int>; using psi = pair<string, int>; using pis = pair<int, string>; using pic = pair<int, char>; using pdd = pair<double, double>; using pds = pair<double, string>; using psd = pair<string, double>; using pss = pair<string, string>; using vpii = vector<pii>; using vpic = vector<pic>; using vpsi = vector<psi>; using vpis = vector<pis>; using vpdd = vector<pdd>; using vpss = vector<pss>; using vpds = vector<pds>; using vpsd = vector<psd>; using spii=set<pii>; using tiii = tuple<int, int, int>; using tsii = tuple<string, int, int>; using tiis = tuple<int, int, string>; using vtiii = vector<tiii>; using mii = map<int, int>; using mci = map<char, int>; using msi = map<string, int>; using Graph=vvi; template<typename T> bool chmax(T &m, const T q) {if (m < q) {m = q; return true;} else return false; } template<typename T> bool chmin(T &m, const T q) {if (m > q) {m = q; return true;} else return false; } int FACT(ll n){if(n==0){return 1;}else{ll base=1;for(ll i=1;i<=n;i++){base*=i;}return base;}}//n! int FACTmod(ll n, int mod){if(n==0){return 1;}else{ll base=1;for(ll i=1;i<=n;i++){base=base*i%mod;}return base;}}//n!%mod vi DIVISOR(int n){ vi v; for (int i=1;i*i<=n;i++){ if(n%i==0) {v.push_back(i); if(i*i!=n)v.push_back(n/i);} } sort(ALL(v)); return v;} // 整数nの約数の昇順配列を出力 int DIVISORK(int n){ int ans=0; for (int i=1;i*i<=n;i++){ if(n%i==0) {ans++; if(i*i!=n)ans++;} } return ans; }// 整数nの約数の個数を出力 bool IS_PRIME(long long N) { if (N == 1) return false; for (long long i = 2; i * i <= N; ++i) { if (N % i == 0) return false; } return true; } //素数判定 void NCRinit(){fac[0]=fac[1]=1;finv[0]=finv[1]=1;inv[1]=1;for(int i=2; i<MAX; i++){fac[i]=fac[i-1]*i%MOD;inv[i]=MOD-inv[MOD%i]*(MOD/i)%MOD;finv[i]=finv[i-1]*inv[i]%MOD;}}//二項係数前処理 long long NCR(int n,int k){if(n<k)return 0;if(n<0 || k<0){return 0;}return fac[n]*(finv[k]*finv[n-k]%MOD)%MOD;}// 二項係数計算/mod long long POW(ll x, ll n) {ll ret = 1;while (n>0){if(n&1)ret*=x;x*=x;n>>=1;}return ret;}//x^n long long POWmod(int x,int n, int mod) {long long ret=1;while(n>0) {if(n&1)ret=ret*x%mod;x=x*x%mod;n>>=1;}return ret;}//x^n%mod ll GCD(ll x, ll y) {while(y>0){ll r=x%y;x=y;y=r;}return x;}//gcd ll LCM(ll x, ll y){return (x/GCD(x,y))*y;}//lcm int mNCR(int n,int r){ if(n<r){return 0;} else if(r==0){return 1;} else{int x=1,ans=1; for(int i=n;i>n-r;i--){ ans=ans*i/x; x++; } return ans; } }//n.r小さいときのnCr vector<pair<long long, long long> > prime_factorize(long long N) { vector<pair<long long, long long> > res; for (long long a = 2; a * a <= N; ++a) { if (N % a != 0) continue; long long ex = 0; while (N % a == 0) { ++ex; N /= a; } res.push_back({a, ex}); } if (N != 1) res.push_back({N, 1}); return res; } //素因数分解 int MINVEC(vi v){ int min=2147483647; int ans=0; int n=v.size(); rep(i,n){ if(v[i]<=min){min=v[i];ans=i;} } return ans; } //viの最小項の番号を返す;//最大番号優先 int MAXVEC(vi v){ int max=-2147483648; int ans=0; int n=v.size(); rep(i,n){ if(v[i]>=max){max=v[i];ans=i;} } return ans; } //viの最大項の番号を返す;//最大番号優先 // aよりもbが大きいならばaをbで更新する // (更新されたならばtrueを返す) template <typename T>bool chmax(T&a,const T&b){if(a<b){a=b;return true;}return false;} // aよりもbが小さいならばaをbで更新する // (更新されたならばtrueを返す) template <typename T>bool chmin(T&a,const T& b){if(a>b){a=b;return true;}return false;} int MASSVEC(vi v, int x, int y){ int ans=0; for(int i=x;i<=y;i++){ ans+=v[i]; } return ans; } //ベクトルのx番目からy番目までの総和 bool secondsort(pair<int, int> a, pair<int, int> b) { if(a.second != b.second){ return a.second < b.second; }else{ return a.first < b.first; } } //ABCDEFGHIJKLMNOPQRSTUVWXYZ //abcdefghijklmnopqrstuvwxyz void solve() { int h,w; cin>>h>>w; vvi v(h,vi(w)); forvin(v); map<int,int> mp; rep(i,h){ rep(t,w){ mp[v[i][t]]++; } } int cnt=0; maprep(itr,mp){ rep(t,itr->second){ cout<<itr->first<<" ";cnt++; if(cnt%w==0){cout<<endl;} } } } signed main(void){ solve(); }